/* ============================================================
   泡泡鱼潮玩 · 前台视觉 V3 —— 粉白清新潮玩风
   ============================================================ */
/* App 启动页 */
#splash{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#ffffff 0%,#ffe9f3 55%,#ffd6e8 100%);transition:opacity .5s ease;overflow:hidden;}
#splash.hide{opacity:0;pointer-events:none;}
#splash .sp-inner{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2;}
.sp-logo{width:132px;height:132px;border-radius:30px;object-fit:cover;box-shadow:0 18px 52px rgba(236,72,153,.38);
  animation:spPop .9s cubic-bezier(.2,1.4,.4,1) both,spFloat 3.2s ease-in-out 1.1s infinite;background:#fff;}
.sp-text{height:32px;width:auto;margin-top:20px;animation:spFade .8s ease .25s both;}
.sp-slogan{font-size:13px;color:#d9488f;letter-spacing:5px;margin-top:14px;font-weight:600;animation:spFade .8s ease .5s both;}
.sp-foot{position:absolute;bottom:40px;left:0;right:0;text-align:center;font-size:11px;color:#c98aa8;letter-spacing:2px;animation:spFade .8s ease .75s both;z-index:2;}
.sp-bubbles i{position:absolute;bottom:-60px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),rgba(255,182,213,.38));
  box-shadow:inset -3px -4px 8px rgba(236,72,153,.12);animation:spRise linear infinite;}
.sp-bubbles i:nth-child(1){width:26px;height:26px;left:10%;animation-duration:7s;animation-delay:0s;}
.sp-bubbles i:nth-child(2){width:16px;height:16px;left:26%;animation-duration:9s;animation-delay:1.2s;}
.sp-bubbles i:nth-child(3){width:34px;height:34px;left:42%;animation-duration:8s;animation-delay:.6s;}
.sp-bubbles i:nth-child(4){width:20px;height:20px;left:62%;animation-duration:7.5s;animation-delay:1.8s;}
.sp-bubbles i:nth-child(5){width:12px;height:12px;left:76%;animation-duration:10s;animation-delay:.9s;}
.sp-bubbles i:nth-child(6){width:28px;height:28px;left:88%;animation-duration:8.5s;animation-delay:2.4s;}
.sp-bubbles i:nth-child(7){width:18px;height:18px;left:5%;animation-duration:9.5s;animation-delay:1.5s;}
.sp-bubbles i:nth-child(8){width:30px;height:30px;left:34%;animation-duration:7.5s;animation-delay:2.8s;}
.sp-bubbles i:nth-child(9){width:14px;height:14px;left:54%;animation-duration:10.5s;animation-delay:.3s;}
.sp-bubbles i:nth-child(10){width:24px;height:24px;left:69%;animation-duration:8s;animation-delay:3.1s;}
.sp-bubbles i:nth-child(11){width:10px;height:10px;left:82%;animation-duration:9s;animation-delay:2.1s;}
.sp-bubbles i:nth-child(12){width:32px;height:32px;left:94%;animation-duration:8.5s;animation-delay:1.1s;}
@keyframes spPop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes spFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes spFade{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}
@keyframes spRise{0%{transform:translateY(0) scale(.55);opacity:0}12%{opacity:1}100%{transform:translateY(-108vh) scale(1.12);opacity:0}}
:root{
  --bg:#fff5f8;            /* 粉白底 */
  --bg2:#fff0f5;
  --card:#ffffff;          /* 白色卡片 */
  --card2:#fff5f8;
  --line:rgba(236,72,153,.14);
  --purple:#ec4899; --violet:#a855f7; --pink:#f472b6; --cyan:#38bdf8;
  --gold:#f59e0b; --text:#3b2340; --sub:#a6788f;
  --grad:linear-gradient(135deg,#f472b6 0%,#ec4899 55%,#a855f7 110%);
  --grad2:linear-gradient(135deg,#ec4899,#a855f7);
  --shadow:0 10px 32px rgba(236,72,153,.14);
  --glow:0 0 22px rgba(244,114,182,.25);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{background-color:#ffeaf2;color:var(--text);font-family:-apple-system,"SF Pro Display","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif;min-height:100vh;overflow-x:hidden;
  background-image:
    linear-gradient(rgba(236,72,153,.075) 1px,transparent 1px),
    linear-gradient(90deg,rgba(236,72,153,.075) 1px,transparent 1px);
  background-size:28px 28px;}
#app{max-width:520px;margin:0 auto;padding-bottom:76px;position:relative;min-height:100vh;
  background:rgba(255,255,255,.62);
  border-left:1px solid rgba(236,72,153,.22);
  border-right:1px solid rgba(236,72,153,.22);
  box-shadow:0 0 46px rgba(236,72,153,.16),0 2px 16px rgba(236,72,153,.08);}
/* 全局泡泡动画层（全站页面漂浮上浮，不挡操作） */
.bubbles{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden;}
.bubbles i{position:absolute;bottom:-72px;border-radius:50%;
  background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.95),rgba(255,196,224,.42) 55%,rgba(244,114,182,.20) 100%);
  box-shadow:inset -2px -3px 6px rgba(236,72,153,.18),0 4px 14px rgba(236,72,153,.10);
  animation:bubRise linear infinite;}
@keyframes bubRise{0%{transform:translateY(0) translateX(0) scale(.9);opacity:0;}
  12%{opacity:.55;}85%{opacity:.42;}100%{transform:translateY(-114vh) translateX(24px) scale(1.08);opacity:0;}}
.bubbles i:nth-child(1){left:3%;width:10px;height:10px;animation-duration:8s;animation-delay:0s;}
.bubbles i:nth-child(2){left:12%;width:16px;height:16px;animation-duration:11s;animation-delay:1.4s;}
.bubbles i:nth-child(3){left:22%;width:22px;height:22px;animation-duration:13s;animation-delay:2.8s;}
.bubbles i:nth-child(4){left:33%;width:12px;height:12px;animation-duration:9s;animation-delay:4.2s;}
.bubbles i:nth-child(5){left:42%;width:18px;height:18px;animation-duration:12s;animation-delay:5.6s;}
.bubbles i:nth-child(6){left:52%;width:26px;height:26px;animation-duration:15s;animation-delay:7s;}
.bubbles i:nth-child(7){left:61%;width:9px;height:9px;animation-duration:10s;animation-delay:.9s;}
.bubbles i:nth-child(8){left:71%;width:14px;height:14px;animation-duration:14s;animation-delay:2.3s;}
.bubbles i:nth-child(9){left:80%;width:20px;height:20px;animation-duration:16s;animation-delay:3.7s;}
.bubbles i:nth-child(10){left:90%;width:11px;height:11px;animation-duration:11s;animation-delay:5.1s;}
.bubbles i:nth-child(11){left:25%;width:24px;height:24px;animation-duration:13s;animation-delay:6.5s;}
.bubbles i:nth-child(12){left:66%;width:15px;height:15px;animation-duration:9s;animation-delay:.4s;}
.bubbles i:nth-child(13){left:8%;width:28px;height:28px;animation-duration:12s;animation-delay:1.8s;}
.bubbles i:nth-child(14){left:47%;width:13px;height:13px;animation-duration:14s;animation-delay:3.2s;}
.bubbles i:nth-child(15){left:17%;width:12px;height:12px;animation-duration:10s;animation-delay:2.1s;}
.bubbles i:nth-child(16){left:37%;width:21px;height:21px;animation-duration:14s;animation-delay:5.3s;}
.bubbles i:nth-child(17){left:57%;width:10px;height:10px;animation-duration:9s;animation-delay:.2s;}
.bubbles i:nth-child(18){left:74%;width:17px;height:17px;animation-duration:12s;animation-delay:4.6s;}
.bubbles i:nth-child(19){left:86%;width:23px;height:23px;animation-duration:15s;animation-delay:7.8s;}
.bubbles i:nth-child(20){left:96%;width:9px;height:9px;animation-duration:11s;animation-delay:1.1s;}
.bubbles i:nth-child(21){left:5%;width:19px;height:19px;animation-duration:13s;animation-delay:5.9s;}
.bubbles i:nth-child(22){left:29%;width:11px;height:11px;animation-duration:8s;animation-delay:3.5s;}
.bubbles i:nth-child(23){left:45%;width:25px;height:25px;animation-duration:16s;animation-delay:.7s;}
.bubbles i:nth-child(24){left:59%;width:13px;height:13px;animation-duration:10s;animation-delay:6.2s;}
.bubbles i:nth-child(25){left:68%;width:30px;height:30px;animation-duration:13s;animation-delay:4.1s;}
.bubbles i:nth-child(26){left:82%;width:15px;height:15px;animation-duration:9s;animation-delay:2.7s;}
.bubbles i:nth-child(27){left:14%;width:26px;height:26px;animation-duration:11s;animation-delay:6.9s;}
.bubbles i:nth-child(28){left:93%;width:18px;height:18px;animation-duration:14s;animation-delay:1.5s;}
@media(min-width:560px){
  #app{margin:20px auto;min-height:calc(100vh - 40px);border-radius:32px;
    border:1px solid rgba(236,72,153,.24);box-shadow:0 0 60px rgba(236,72,153,.20),0 14px 40px rgba(236,72,153,.12);}
  .tabbar{bottom:20px;width:calc(100% - 40px);max-width:480px;border-radius:26px;
    border:1px solid rgba(236,72,153,.2);box-shadow:0 12px 32px rgba(236,72,153,.22);overflow:hidden;}
}
/* 粉白氛围背景 */
#app::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(640px 460px at 12% -6%,rgba(244,114,182,.13),transparent 60%),
    radial-gradient(520px 400px at 92% 2%,rgba(168,85,247,.09),transparent 58%),
    radial-gradient(620px 500px at 50% 112%,rgba(236,72,153,.07),transparent 62%);}
/* 顶部品牌栏（固定，与搜索栏紧贴） */
.top{position:fixed;top:0;left:0;width:100%;z-index:50;
  background:linear-gradient(180deg,rgba(244,63,154,.24) 0%,rgba(255,255,255,.94) 84%);
  backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid var(--line);}
.top-inner{max-width:520px;margin:0 auto;display:flex;align-items:center;gap:10px;
  padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 14px;}
.brand{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0;}
.brow{display:flex;align-items:center;gap:9px;min-width:0;max-width:100%;}
.brand .logo{width:44px;height:44px;border-radius:13px;object-fit:cover;box-shadow:0 4px 14px rgba(236,72,153,.45);background:#fff;flex-shrink:0;}
.brand .btext{height:28px;width:auto;max-width:100%;object-fit:contain;flex-shrink:1;overflow:hidden;}
.slogan{font-size:8px;font-weight:600;color:#d9488f;letter-spacing:4.5px;opacity:.9;line-height:1;white-space:nowrap;padding-left:53px;margin-top:-12px;}
.mid-wrap{flex:1;text-align:center;min-width:0;}
.mid-title{display:inline-block;font-size:16.5px;font-weight:800;letter-spacing:5px;white-space:nowrap;
  font-family:'PingFang SC','Microsoft YaHei','STKaiti',sans-serif;
  background:linear-gradient(135deg,#f43f9a 0%,#be185d 55%,#9d174d 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 10px rgba(236,72,153,.35));}
.top-side{flex:1;min-width:0;}
.slogan2{display:none;}
/* 视图 */
#view{padding:92px 14px 12px;animation:fadeIn .4s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
/* 搜索栏 */
.search{display:flex;gap:9px;margin-bottom:14px;}
.search input{flex:1;height:42px;border-radius:21px;border:1px solid var(--line);background:#fff;
  color:var(--text);padding:0 18px;font-size:14px;outline:none;box-shadow:0 3px 12px rgba(236,72,153,.06);
  transition:border .25s, box-shadow .25s;}
.search input::placeholder{color:#c9a3b8;}
.search input:focus{border-color:rgba(236,72,153,.45);box-shadow:0 0 0 3px rgba(236,72,153,.12);}
.search button{width:42px;height:42px;border-radius:21px;border:none;background:var(--grad);color:#fff;font-size:16px;cursor:pointer;
  box-shadow:0 6px 16px rgba(236,72,153,.35);transition:transform .15s, filter .2s;display:flex;align-items:center;justify-content:center;}
.search button svg{width:19px;height:19px;display:block;}
.search button:active{transform:scale(.92);}
/* Banner 轮播（粉嫩渐变） */
.banner{position:relative;height:0;padding-bottom:33.333%;min-height:110px;border-radius:22px;overflow:hidden;margin-bottom:14px;
  box-shadow:var(--shadow);border:1px solid rgba(244,114,182,.25);}
.btrack{position:absolute;top:0;left:0;display:flex;width:300%;height:100%;transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform;}
.bslide{flex:0 0 33.333333%;width:33.333333%;height:100%;display:flex;align-items:flex-end;padding:20px;position:relative;transition:transform .55s cubic-bezier(.4,0,.2,1);
  background:radial-gradient(120% 160% at 85% -20%,rgba(255,255,255,.65) 0%,rgba(253,164,175,.55) 30%,rgba(244,114,182,.9) 78%);
  background-size:contain;background-repeat:no-repeat;background-position:center;}
.bslide::before{content:'✦';position:absolute;top:14px;right:20px;font-size:30px;color:rgba(255,255,255,.55);text-shadow:0 0 14px rgba(255,255,255,.9);z-index:2;}
.bslide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,10,35,0) 35%,rgba(30,10,35,.42) 100%);z-index:1;}
.btxt{color:#fff;text-shadow:0 2px 14px rgba(190,24,93,.4);position:relative;z-index:2;}
.btxt b{font-size:22px;display:block;letter-spacing:1px;}
.btxt span{font-size:12px;opacity:.95;display:block;margin-top:6px;letter-spacing:.5px;}
.bdots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:3;}
.bdots i{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.65);display:block;transition:all .35s;}
.bdots i.on{width:16px;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.9);}
/* 金刚区（白色卡片） */
.grid-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#fff;
  border:1px solid var(--line);border-radius:20px;padding:14px 6px 10px;margin-bottom:14px;
  box-shadow:0 6px 22px rgba(236,72,153,.08);}
.gitem{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;padding:4px 0;transition:transform .18s;}
.gitem:active{transform:scale(.9);}
.gico{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;position:relative;
  transition:box-shadow .25s, transform .2s;}
.gico svg{width:23px;height:23px;color:#e11d48;display:block;}
.gitem:hover .gico{transform:translateY(-2px);}
.g1{background:linear-gradient(135deg,rgba(244,114,182,.20),rgba(236,72,153,.20));box-shadow:0 6px 14px rgba(244,114,182,.25);}
.g2{background:linear-gradient(135deg,rgba(251,191,36,.22),rgba(244,114,182,.20));box-shadow:0 6px 14px rgba(251,191,36,.2);}
.g3{background:linear-gradient(135deg,rgba(56,189,248,.20),rgba(244,114,182,.18));box-shadow:0 6px 14px rgba(56,189,248,.18);}
.g4{background:linear-gradient(135deg,rgba(74,222,128,.20),rgba(56,189,248,.18));box-shadow:0 6px 14px rgba(74,222,128,.18);}
.g5{background:linear-gradient(135deg,rgba(244,114,182,.22),rgba(168,85,247,.18));box-shadow:0 6px 14px rgba(244,114,182,.2);}
.g6{background:linear-gradient(135deg,rgba(168,85,247,.20),rgba(56,189,248,.18));box-shadow:0 6px 14px rgba(168,85,247,.2);}
.g7{background:linear-gradient(135deg,rgba(56,189,248,.20),rgba(244,114,182,.18));box-shadow:0 6px 14px rgba(56,189,248,.18);}
.g8{background:linear-gradient(135deg,rgba(251,191,36,.22),rgba(168,85,247,.18));box-shadow:0 6px 14px rgba(251,191,36,.18);}
.gitem b{font-size:11px;font-weight:600;color:var(--sub);}
/* 分类按钮（5个一行，与金刚区同宽同款卡片） */
.cats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;background:#fff;
  border:1px solid var(--line);border-radius:20px;padding:14px 6px;margin-bottom:14px;
  box-shadow:0 6px 22px rgba(236,72,153,.08);}
.cat{padding:9px 2px;border-radius:20px;background:#fff;border:1px solid var(--line);
  font-size:12px;color:var(--sub);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;
  transition:all .2s;box-shadow:0 2px 8px rgba(236,72,153,.05);white-space:nowrap;}
.cat.active{background:var(--grad);color:#fff;border-color:transparent;font-weight:600;
  box-shadow:0 6px 16px rgba(236,72,153,.35);}
/* 二级商品页 */
.catpage{padding:0 0 8px;}
.cpage-title{font-size:17px;font-weight:800;letter-spacing:.5px;color:var(--text);
  padding:6px 2px 12px;position:relative;padding-left:14px;}
.cpage-title::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:5px;height:16px;background:var(--grad);border-radius:3px;box-shadow:0 0 10px rgba(236,72,153,.55);}
/* 区块标题 */
.sec-title{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 11px;}
.sec-title span{font-size:16px;font-weight:800;letter-spacing:.5px;color:var(--text);position:relative;padding-left:14px;}
.sec-title span::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:16px;
  background:var(--grad);border-radius:3px;box-shadow:0 0 10px rgba(236,72,153,.55);}
.sec-title i{font-style:normal;font-size:12px;color:var(--sub);cursor:pointer;display:flex;align-items:center;gap:3px;}
.sec-title i::after{content:'›';font-size:14px;}
/* 商品网格与卡片（白卡片+粉描边） */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pcard{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;cursor:pointer;
  box-shadow:0 4px 16px rgba(236,72,153,.07);
  transition:transform .2s, box-shadow .25s, border-color .25s;position:relative;}
.pcard:hover{transform:translateY(-3px);border-color:rgba(236,72,153,.4);box-shadow:0 12px 28px rgba(236,72,153,.16);}
.pcard:active{transform:scale(.97);}
.pcover{position:relative;aspect-ratio:1;background:radial-gradient(90% 90% at 50% 28%,#fff0f5 0%,#ffeaf1 70%);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.pcover img{width:86%;height:86%;object-fit:contain;transition:transform .35s;filter:drop-shadow(0 6px 14px rgba(236,72,153,.25));}
.pcard:hover .pcover img{transform:scale(1.06);}
.pbadge{position:absolute;top:9px;left:9px;font-size:10px;font-weight:700;color:#fff;padding:3px 8px;border-radius:9px;
  background:var(--grad);box-shadow:0 4px 12px rgba(244,114,182,.35);z-index:2;}
.pbadge.b2{background:linear-gradient(135deg,#38bdf8,#a855f7);box-shadow:0 4px 12px rgba(56,189,248,.3);}
.pinfo{padding:11px 13px 13px;}
.pseries{font-size:10px;color:#d9488f;background:rgba(244,114,182,.12);padding:2px 7px;border-radius:7px;display:inline-block;margin-bottom:5px;letter-spacing:.5px;}
.pname{font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:39px;}
.pprice{display:flex;align-items:baseline;gap:6px;margin-top:7px;}
.pprice b{font-size:18px;font-weight:800;color:#e11d48;}
.pprice .orig{font-size:11px;color:var(--sub);text-decoration:line-through;}
.psales{font-size:10px;color:var(--sub);margin-top:4px;display:flex;align-items:center;gap:3px;}
.psales::before{content:'❤';font-size:9px;color:#fb7185;}
/* 底部导航（白玻璃 + 粉色激活） */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;
  display:flex;background:rgba(255,255,255,.88);backdrop-filter:blur(20px) saturate(1.5);
  border-top:1px solid var(--line);z-index:60;padding-bottom:env(safe-area-inset-bottom,0);}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;padding:9px 0 11px;color:var(--sub);cursor:pointer;font-size:11px;gap:3px;
  transition:color .2s;position:relative;}
.tab span{font-size:20px;line-height:1;transition:transform .2s;}
.tab .tico{width:23px;height:23px;display:flex;align-items:center;justify-content:center;color:inherit;}
.tab .tico svg{width:100%;height:100%;display:block;}
.tab.active .tico{color:var(--purple);}
.tab:active .tico{transform:scale(.86);}
.tab.active{color:var(--purple);font-weight:700;}
.tab.active::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:2.5px;
  background:var(--grad);border-radius:2px;box-shadow:0 0 12px rgba(236,72,153,.7);}
.tab:active span{transform:scale(.86);}
/* 空状态 */
.empty{text-align:center;color:var(--sub);padding:70px 0;font-size:14px;line-height:2;}
/* 通用按钮（流光） */
.btn{display:block;width:100%;height:46px;border:none;border-radius:23px;background:var(--grad);color:#fff;
  font-size:15px;font-weight:700;cursor:pointer;position:relative;overflow:hidden;
  box-shadow:0 8px 20px rgba(236,72,153,.3);transition:filter .2s, transform .15s;}
.btn::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .5s;}
.btn:hover::after{left:120%;}
.btn:active{transform:scale(.97);}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--sub);box-shadow:none;}
.btn.ghost::after{display:none;}
/* 商品详情 */
.detail{padding-bottom:148px;}
.detail .othumb{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 2px;}
.detail .othumb::-webkit-scrollbar{display:none;}
.detail .othumb .t{width:56px;height:56px;border-radius:14px;background:radial-gradient(80% 80% at 50% 28%,#fff0f5,#ffeaf1);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 56px;border:1px solid var(--line);cursor:pointer;}
.detail .othumb .t img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(236,72,153,.2));}
/* 轮播（主图 / 图文详情） */
.swipe{position:relative;overflow:hidden;}
.swipe .swipe-track{display:flex;transition:transform .32s cubic-bezier(.22,.61,.36,1);}
.swipe .swipe-slide{flex:0 0 100%;min-width:100%;}
.swipe .swipe-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.dcarousel.swipe{display:block;padding:0;}
.dcarousel.swipe .swipe-track{width:100%;height:100%;align-items:center;}
.swipe-dots{position:absolute;bottom:9px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:6;pointer-events:none;}
.swipe-dots i{width:6px;height:6px;border-radius:3px;background:rgba(180,69,130,.25);transition:.25s;pointer-events:auto;cursor:pointer;}
.swipe-dots i.on{width:16px;background:linear-gradient(90deg,#f472b6,#a855f7);}
.gallery.swipe{border-radius:14px;border:1px solid var(--line);box-shadow:0 6px 18px rgba(236,72,153,.12);aspect-ratio:3/3.4;background:#fff;}
.gallery.swipe .swipe-slide img{width:100%;height:100%;object-fit:cover;}
.dcarousel{background:radial-gradient(90% 90% at 50% 26%,#fff0f5 0%,#ffeaf1 72%);border-radius:24px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--line);box-shadow:var(--shadow);}
.dcarousel img{width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(236,72,153,.3));}
/* 水印已合入商品图片像素，不再使用CSS浮层 */
.dcarousel{position:relative;}
/* 正规电商详情：信息卡/保障/规格/图文 */
.dinfocard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;margin-top:13px;box-shadow:0 4px 16px rgba(236,72,153,.06);}
.dprice-row{display:flex;align-items:baseline;gap:9px;}
.dprice{font-size:26px;font-weight:800;color:#e11d48;}
.dprice-row .orig{font-size:12px;color:var(--sub);text-decoration:line-through;}
.dsales{margin-left:auto;font-size:11px;color:var(--sub);}
.dname{font-size:17px;font-weight:800;margin-top:7px;line-height:1.4;}
.dsub{font-size:12px;color:var(--sub);margin-top:5px;}
.dmeta{display:flex;gap:10px;margin-top:8px;font-size:11px;color:var(--sub);}
.dmeta span{background:rgba(244,114,182,.1);padding:2px 8px;border-radius:8px;}
.dserve{display:flex;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:20px;padding:11px 14px;margin-top:11px;box-shadow:0 4px 14px rgba(236,72,153,.05);}
.dserve span{font-size:11px;color:#b54582;white-space:nowrap;}
.dsec{background:#fff;border:1px solid var(--line);border-radius:20px;padding:15px 16px;margin-top:11px;box-shadow:0 4px 14px rgba(236,72,153,.05);}
.dsec h4{font-size:14px;color:var(--purple);margin-bottom:10px;letter-spacing:.5px;}
.dspecs{display:flex;flex-direction:column;}
.sp-row{display:flex;padding:8px 0;border-bottom:1px dashed rgba(236,72,153,.16);font-size:12px;}
.sp-row:last-child{border-bottom:0;}
.sp-row label{width:92px;color:var(--sub);flex:0 0 92px;}
.sp-row span{color:#4c2a3c;flex:1;line-height:1.6;}
.ddetail{font-size:13px;color:var(--sub);line-height:1.95;}
.ddetail h4{color:#d9488f;margin:10px 0 6px;font-size:13px;}
.ddetail p{margin:4px 0;white-space:pre-line;}
.ddetail p.pimg{text-align:center;margin:6px 0;}
.ddetail p.pimg img{width:100%;max-width:340px;border-radius:14px;box-shadow:0 6px 18px rgba(236,72,153,.16);}
.dbuy{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);width:100%;max-width:520px;
  display:flex;flex-direction:column;gap:9px;padding:11px 14px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);
  border-top:1px solid var(--line);z-index:55;}
.dbuy .qtyrow{margin-top:0;padding-top:0;border-top:0;}
.dbuy .btns{display:flex;gap:10px;}
.dbuy .btn{flex:1;}
.dbuy .dcontact{margin-top:2px;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 0;
  border:1px dashed rgba(236,72,153,.35);border-radius:14px;color:#ec4899;background:rgba(255,241,248,.55);
  font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;}
.dbuy .dcontact:active{background:rgba(255,229,242,.9);}
.qtyhint{font-size:11px;color:#e11d48;margin-left:8px;}
/* 购物车 */
.citem{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;margin-bottom:11px;box-shadow:0 4px 14px rgba(236,72,153,.06);}
.cimg{width:74px;height:74px;border-radius:16px;background:radial-gradient(80% 80% at 50% 28%,#fff0f5,#ffeaf1);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 74px;}
.cimg img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(236,72,153,.22));}
.cinfo{flex:1;min-width:0;}
.cname{font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cprice{font-size:15px;font-weight:700;color:#e11d48;margin-top:4px;}
.cops{display:flex;align-items:center;gap:8px;margin-top:9px;}
.cnum{display:flex;align-items:center;gap:0;}
.cnum button{width:27px;height:27px;border:none;background:var(--card2);color:var(--text);border-radius:9px;font-size:15px;cursor:pointer;border:1px solid var(--line);transition:background .2s;}
.cnum button:active{background:var(--purple);color:#fff;}
.cnum b{min-width:36px;text-align:center;font-size:14px;}
.cdel{margin-left:auto;color:#fb7185;font-size:12px;background:none;border:none;cursor:pointer;align-self:flex-start;padding:4px;}
.cfoot{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);width:100%;max-width:520px;display:flex;align-items:center;gap:12px;
  padding:11px 14px;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-top:1px solid var(--line);z-index:55;}
.cfoot .total{flex:1;font-size:13px;color:var(--sub);}
.cfoot .total b{font-size:21px;font-weight:800;color:#e11d48;margin-left:5px;}
.cfoot .btn{width:118px;height:42px;}
/* 下单页 */
.checkout{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px;margin-bottom:13px;box-shadow:0 4px 16px rgba(236,72,153,.06);}
.ckrow{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px dashed rgba(236,72,153,.2);font-size:14px;}
.ckrow:last-child{border-bottom:none;}
.ckrow label{color:var(--sub);}
.ckrow .v{font-weight:600;}
.payopts{display:flex;gap:10px;flex-wrap:wrap;margin-top:11px;}
.payopt{flex:1;min-width:96px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:7px;border-radius:14px;background:var(--card2);border:1.5px solid var(--line);cursor:pointer;font-size:13px;transition:all .2s;position:relative;}
.payopt .payic{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 2px 6px rgba(236,72,153,.08);}
.payopt .payic .paylogo{width:24px;height:24px;object-fit:contain;display:block;}
.payopt .paynm{font-size:12.5px;color:var(--text);}
.payopt.active{border-color:var(--purple);background:rgba(244,114,182,.12);box-shadow:0 0 14px rgba(244,114,182,.2);}
.payopt.active .paynm{color:var(--purple);font-weight:700;}
.payopt em{position:absolute;top:6px;right:9px;font-style:normal;color:var(--purple);font-weight:800;font-size:14px;}
/* 订单 */
.oitem{background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px;margin-bottom:11px;box-shadow:0 4px 14px rgba(236,72,153,.06);}
.ohead{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--sub);margin-bottom:9px;}
.ostatus{font-weight:700;letter-spacing:.5px;}
.ostatus.s0{color:#f59e0b;}.ostatus.s1{color:#16a34a;}.ostatus.s2{color:#0ea5e9;}.ostatus.s3{color:var(--sub);}.ostatus.s4{color:var(--pink);}.ostatus.s5{color:#ef4444;}
.oitems{font-size:13px;color:var(--text);line-height:1.8;}
.oamt{display:flex;justify-content:flex-end;margin-top:9px;font-size:13px;color:var(--sub);}
.oamt b{color:#e11d48;font-size:16px;}
.oops{display:flex;gap:8px;justify-content:flex-end;margin-top:11px;}
.oops .btn{width:auto;padding:0 17px;height:33px;border-radius:17px;font-size:12px;font-weight:600;box-shadow:0 4px 12px rgba(236,72,153,.25);}
/* 我的 */
.mine-card{background:linear-gradient(160deg,rgba(244,114,182,.16),rgba(255,255,255,.95) 65%),#fff;border:1px solid var(--line);border-radius:22px;padding:24px 14px;text-align:center;margin-bottom:13px;box-shadow:var(--shadow);}
.mine-avatar{width:68px;height:68px;border-radius:34px;background:var(--grad);margin:0 auto 11px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;box-shadow:0 8px 22px rgba(236,72,153,.4);position:relative;cursor:pointer;overflow:visible;}
.mine-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff;}
.mine-avatar i{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;background:var(--pink);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;border:2px solid #fff;font-style:normal;}
.mine-name{font-size:17px;font-weight:800;}
.mine-phone{font-size:12px;color:var(--sub);margin-top:5px;}
.mine-menu{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 4px 14px rgba(236,72,153,.06);}
.mine-menu .mi{display:flex;justify-content:space-between;padding:15px;border-bottom:1px solid var(--line);font-size:14px;cursor:pointer;transition:background .2s;}
.mine-menu .mi:last-child{border-bottom:none;}
.mine-menu .mi:active{background:rgba(244,114,182,.08);}
/* 表单 */
.form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;margin:16px 0;box-shadow:var(--shadow);}
.form h3{text-align:center;font-size:18px;margin-bottom:18px;letter-spacing:1px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.frow{margin-bottom:13px;}
.frow label{font-size:12px;color:var(--sub);display:block;margin-bottom:6px;letter-spacing:.5px;}
.frow input{width:100%;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--card2);color:var(--text);padding:0 14px;font-size:14px;outline:none;transition:border .2s, box-shadow .2s;}
.frow input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(236,72,153,.1);}
.fhint{font-size:11px;color:var(--sub);margin-top:5px;}
/* 协议勾选 + 协议文档页 */
.agr{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--sub);line-height:1.6;margin:12px 0 14px;}
.agr input{width:16px;height:16px;margin-top:1px;flex-shrink:0;accent-color:#ec4899;}
.agr span{color:var(--purple);cursor:pointer;}
.docbox{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;margin:12px 0 18px;box-shadow:var(--shadow);}
.docbox .doc-title{font-size:17px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px;letter-spacing:1px;}
.docbox h3{font-size:16px;margin:6px 0 10px;color:var(--ink);}
.docbox h4{font-size:14px;margin:16px 0 8px;color:#be185d;}
.docbox p{font-size:13px;color:#4b5563;line-height:1.95;margin-bottom:10px;}
.docbox br{display:block;content:'';margin-top:2px;}
/* 编辑资料 / 头像裁剪弹窗 */
.pmodal{position:fixed;left:50%;top:46%;transform:translate(-50%,-50%);width:min(88vw,340px);background:#fff;border-radius:18px;padding:20px 18px;box-shadow:0 12px 40px rgba(0,0,0,.18);z-index:60;}
.pm-head{display:flex;justify-content:space-between;align-items:center;font-size:16px;color:#222;margin-bottom:14px;}
.pm-x{font-size:18px;color:#999;padding:2px 8px;cursor:pointer;}
.pm-av{position:relative;width:96px;height:96px;margin:0 auto 6px;cursor:pointer;}
.pm-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:1px solid #eee;}
.pm-av i{position:absolute;right:0;bottom:0;width:26px;height:26px;background:var(--pink);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;border:2px solid #fff;font-style:normal;}
.pm-tip{text-align:center;font-size:12px;color:#999;margin-bottom:14px;}
.pm-row{display:flex;align-items:center;gap:10px;border:1px solid #eee;border-radius:12px;padding:10px 12px;margin-bottom:18px;}
.pm-row label{font-size:14px;color:#666;white-space:nowrap;}
.pm-row input{flex:1;border:none;outline:none;font-size:15px;color:#222;background:transparent;}
.pm-ops{display:flex;}
.pm-ok{flex:1;background:var(--grad);color:#fff;border:none;border-radius:12px;padding:12px 0;font-size:16px;cursor:pointer;}
.crop-box{position:fixed;left:50%;top:46%;transform:translate(-50%,-50%);width:min(92vw,360px);background:#fff;border-radius:18px;padding:18px 16px;box-shadow:0 12px 40px rgba(0,0,0,.2);z-index:100;}
.crop-title{font-size:13px;color:#666;text-align:center;margin-bottom:12px;}
.crop-stage{position:relative;overflow:hidden;border-radius:14px;background:#151515;margin:0 auto;touch-action:none;}
.crop-stage img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:none;user-select:none;-webkit-user-drag:none;}
.crop-circle{position:absolute;left:50%;top:50%;width:84%;height:84%;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.55);border:2px solid #fff;pointer-events:none;}
.crop-bar{display:flex;align-items:center;gap:10px;padding:12px 2px 8px;}
.crop-bar .ci{font-size:12px;color:#999;white-space:nowrap;}
.crop-bar input{flex:1;accent-color:var(--pink);}
.crop-ops{display:flex;gap:12px;}
.crop-ops button{flex:1;padding:11px 0;border:none;border-radius:10px;font-size:15px;cursor:pointer;}
.crop-cancel{background:#f2f2f2;color:#666;}
.crop-ok{background:var(--grad);color:#fff;}
/* toast */
#toast{position:fixed;top:16%;left:50%;transform:translateX(-50%) translateY(-8px);z-index:99;
  background:rgba(255,255,255,.96);border:1px solid rgba(236,72,153,.4);color:var(--text);padding:10px 20px;border-radius:22px;
  font-size:13px;opacity:0;transition:all .28s;pointer-events:none;box-shadow:0 10px 32px rgba(236,72,153,.25);
  backdrop-filter:blur(14px);}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ============ V3 新增：收藏 / 地址 / 订单增强 ============ */
/* 详情页收藏按钮 */
.fav-btn{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:19px;border:1px solid var(--line);
  background:rgba(255,255,255,.92);font-size:17px;display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 4px 14px rgba(236,72,153,.18);transition:transform .15s;}
.fav-btn:active{transform:scale(.85);}
.fav-btn.on{background:var(--grad);border-color:transparent;}
/* 商品卡快捷收藏 */
.pfav{position:absolute;top:9px;right:9px;width:30px;height:30px;border-radius:15px;background:rgba(255,255,255,.94);
  display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;z-index:2;
  box-shadow:0 3px 10px rgba(236,72,153,.22);transition:transform .15s;}
.pfav:active{transform:scale(.82);}
/* 页面内统一返回按钮：固定于页眉之下（页眉高65px + 间距），z-index 高于内容 */
.gback{position:fixed;top:88px;left:14px;width:34px;height:34px;border-radius:17px;background:rgba(255,255,255,.96);
  border:1px solid rgba(236,72,153,.28);color:var(--purple);font-size:19px;font-weight:700;line-height:32px;text-align:center;
  cursor:pointer;z-index:30;box-shadow:0 4px 12px rgba(236,72,153,.2);transition:transform .15s;}
.gback:active{transform:scale(.85);}
.gback + .form,.gback + .empty,.gback + .sec-title{margin-top:0;}
/* 详情页数量选择 */
.qtyrow{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(236,72,153,.2);}
.qtyrow label{font-size:12px;color:var(--sub);}
.cnum.qty2 button{width:30px;height:30px;border-radius:10px;}
/* 购物车选择框 */
.csel{width:20px;height:20px;border-radius:10px;border:1.5px solid rgba(236,72,153,.4);display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex:0 0 20px;margin-top:26px;transition:all .2s;font-size:12px;color:#fff;}
.csel.on{background:var(--grad);border-color:transparent;box-shadow:0 2px 8px rgba(236,72,153,.4);}
.citem{align-items:flex-start;gap:10px;}
.citem .cinfo{flex:1;}
.citem .cdel{align-self:flex-start;}
.cfoot .all{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);cursor:pointer;}
.cfoot .all .csel{margin-top:0;}
/* 结算地址区 */
.ck-addr{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px 16px;margin-bottom:13px;box-shadow:0 4px 16px rgba(236,72,153,.06);display:flex;align-items:center;gap:12px;cursor:pointer;transition:border .2s;}
.ck-addr:active{border-color:var(--purple);}
.ck-addr .ico{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,rgba(244,114,182,.18),rgba(168,85,247,.14));display:flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 42px;}
.ck-addr .abody{flex:1;min-width:0;}
.ck-addr .aname{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;}
.ck-addr .aname em{font-style:normal;font-size:9px;color:#fff;background:var(--grad);padding:2px 6px;border-radius:7px;}
.ck-addr .aaddr{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ck-addr .gohint{font-size:11px;color:var(--purple);}
/* 地址卡 */
.addr-list{padding-bottom:76px;}
.addr-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin-bottom:11px;box-shadow:0 4px 14px rgba(236,72,153,.06);position:relative;}
.addr-card .top{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;}
.addr-card .top em{font-style:normal;font-size:9px;color:#fff;background:var(--grad);padding:2px 6px;border-radius:7px;}
.addr-card .top .phone{font-weight:400;color:var(--sub);font-size:12px;}
.addr-card .txt{font-size:12px;color:var(--sub);margin-top:6px;line-height:1.6;}
.addr-card .ops{display:flex;gap:10px;justify-content:flex-end;margin-top:10px;font-size:12px;}
.addr-card .ops span{cursor:pointer;padding:4px 10px;border-radius:9px;background:var(--card2);border:1px solid var(--line);color:var(--sub);}
.addr-card .ops span:active{background:rgba(244,114,182,.15);}
.addr-card.pick{cursor:pointer;}
.addr-card.pick:active{border-color:var(--purple);}
.addr-bar{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);width:100%;max-width:520px;padding:10px 14px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-top:1px solid var(--line);z-index:55;}
.addr-empty{text-align:center;color:var(--sub);padding:64px 0;font-size:13px;line-height:2;}
/* 订单状态 tab */
.otabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 13px;scrollbar-width:none;}
.otabs::-webkit-scrollbar{display:none;}
.otab{flex:0 0 auto;padding:8px 14px;border-radius:18px;background:#fff;border:1px solid var(--line);font-size:12px;color:var(--sub);cursor:pointer;transition:all .2s;}
.otab.active{background:var(--grad);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 5px 14px rgba(236,72,153,.32);}
/* 订单卡增强 */
.oitem .othumb{display:flex;gap:8px;margin:8px 0 4px;overflow-x:auto;scrollbar-width:none;}
.oitem .othumb::-webkit-scrollbar{display:none;}
.oitem .othumb .t{width:52px;height:52px;border-radius:13px;background:radial-gradient(80% 80% at 50% 30%,#fff0f5,#ffeaf1);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 52px;}
.oitem .othumb .t img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(236,72,153,.2));}
.oitem .olist{font-size:12px;color:var(--sub);margin-top:6px;line-height:1.7;}
.oitem .odate{font-size:10px;color:var(--sub);margin-top:3px;}
/* 订单详情弹层 */
.modal-mask{position:fixed;inset:0;background:rgba(59,35,64,.45);z-index:90;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px);animation:fadeIn .22s ease;}
.modal{width:100%;max-width:520px;background:#fff;border-radius:24px 24px 0 0;padding:20px 18px 24px;max-height:76vh;overflow-y:auto;box-shadow:0 -10px 40px rgba(236,72,153,.2);animation:slideUp .28s cubic-bezier(.4,0,.2,1);}
@keyframes slideUp{from{transform:translateY(60px);opacity:.4;}to{transform:none;opacity:1;}}
.modal h3{font-size:16px;font-weight:800;text-align:center;margin-bottom:15px;color:var(--text);}
.modal .mrow{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed rgba(236,72,153,.16);font-size:13px;}
.modal .mrow label{color:var(--sub);}
.modal .mrow .v{font-weight:600;max-width:62%;text-align:right;word-break:break-all;}
.modal .mitems{background:var(--card2);border-radius:14px;padding:11px 13px;margin:10px 0;font-size:13px;line-height:1.9;color:var(--text);}
.modal .mclose{display:block;width:100%;height:42px;border:none;border-radius:21px;background:var(--card2);color:var(--sub);font-size:14px;margin-top:13px;cursor:pointer;border:1px solid var(--line);}
.modal .mclose:active{background:rgba(244,114,182,.12);}
/* 公告可爱弹窗（卡哇伊版） */
.notice-mask{position:fixed;inset:0;background:rgba(59,35,64,.42);z-index:95;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);animation:fadeIn .25s ease;padding:24px;}
.notice-box{position:relative;width:min(92vw,360px);max-height:70vh;overflow:hidden;background:linear-gradient(165deg,#fff6fb 0%,#ffeaf4 50%,#ffdceb 100%);border-radius:30px;padding:26px 20px 22px;box-shadow:0 18px 50px rgba(236,72,153,.3), inset 0 0 0 2px rgba(255,255,255,.75), inset 0 -30px 60px rgba(244,114,182,.07);transform:scale(.7) translateY(26px);opacity:0;transition:transform .38s cubic-bezier(.34,1.56,.64,1),opacity .28s ease;}
.notice-box.in{transform:none;opacity:1;}
.notice-mask.out .notice-box{transform:scale(.85) translateY(10px);opacity:0;}
.notice-box .n-close{position:absolute;top:12px;right:14px;width:30px;height:30px;border:none;border-radius:50%;background:rgba(244,114,182,.14);color:#d9488f;font-size:18px;line-height:1;cursor:pointer;z-index:3;box-shadow:0 2px 6px rgba(244,114,182,.2);}
.notice-box .n-top{text-align:center;margin-bottom:10px;position:relative;z-index:2;}
/* 可爱白猫头像（插画版） */
/* 泡泡鱼 logo 头像（可爱版） */
.notice-box .n-logo{display:inline-flex;width:96px;height:96px;border-radius:50%;background:#fff;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(236,72,153,.34), inset 0 0 0 3px #ffd6e8;margin:0 auto 2px;animation:nWiggle 2.6s ease-in-out infinite;position:relative;}
.notice-box .n-logo::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:2px dashed rgba(244,114,182,.4);animation:nSpin 12s linear infinite;}
.notice-box .n-logo img{width:82px;height:82px;border-radius:50%;object-fit:cover;}
.notice-box .n-badge{display:inline-block;margin-top:10px;padding:5px 16px;border-radius:20px;background:linear-gradient(135deg,#ff8fc0,#f472b6);color:#fff;font-size:12.5px;font-weight:700;letter-spacing:1px;box-shadow:0 4px 10px rgba(244,114,182,.3);}
@keyframes nSpin{to{transform:rotate(360deg);}}
.notice-box .n-title{text-align:center;font-size:16.5px;font-weight:900;color:#c02676;letter-spacing:.5px;margin:8px 0 10px;position:relative;z-index:2;}
.notice-box .n-content{font-size:13.5px;color:#5b3450;line-height:1.85;background:rgba(255,255,255,.78);border:1.5px solid #ffd3e5;border-radius:16px;padding:13px 15px;max-height:36vh;overflow-y:auto;word-break:break-word;position:relative;z-index:2;}
.notice-box .n-content h1,.notice-box .n-content h2,.notice-box .n-content h3{font-size:15px;color:#c02676;margin:8px 0 5px;}
.notice-box .n-content p{margin:5px 0;}
.notice-box .n-btn{display:block;width:100%;margin-top:14px;padding:12px;border:none;border-radius:24px;background:linear-gradient(135deg,#a855f7,#f472b6);color:#fff;font-size:14.5px;font-weight:800;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 18px rgba(244,114,182,.4);position:relative;z-index:2;transition:transform .15s ease,box-shadow .15s ease;}
.notice-box .n-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(244,114,182,.5);}
.notice-box .n-btn:active{transform:scale(.96);}
.notice-box .n-bub{position:absolute;bottom:-20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9),rgba(255,150,190,.45));box-shadow:inset -2px -3px 6px rgba(236,72,153,.14);animation:nRise linear infinite;pointer-events:none;z-index:1;}
.notice-box .n-bub.b1{width:22px;height:22px;left:8%;animation-duration:6.5s;animation-delay:0s;}
.notice-box .n-bub.b2{width:12px;height:12px;left:30%;animation-duration:8s;animation-delay:1.4s;}
.notice-box .n-bub.b3{width:18px;height:18px;left:68%;animation-duration:7s;animation-delay:.8s;}
.notice-box .n-bub.b4{width:9px;height:9px;left:86%;animation-duration:9s;animation-delay:2s;}
@keyframes nRise{0%{transform:translateY(0) scale(.6);opacity:0;}14%{opacity:.95;}100%{transform:translateY(-340px) scale(1.15);opacity:0;}}
@keyframes nWiggle{0%,100%{transform:rotate(-3deg);}50%{transform:rotate(3deg);}}
/* 我的菜单图标 */
.mine-menu .mi .mi-ico{display:inline-flex;width:22px;justify-content:center;}
/* 购物车角标 */
.tab{position:relative;}
.tab .cbadge{position:absolute;top:4px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;
  background:var(--grad);color:#fff;font-size:10px;font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;
  box-shadow:0 2px 8px rgba(236,72,153,.5);}

/* ===== 物流跟踪 ===== */
.trk-com{font-style:normal;font-size:11px;color:#f472b6;margin-left:6px;}
.trkbox{margin:6px 0 4px;}
.trk-hd{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:#333;background:#fff1f7;border:1px solid #fbcfe8;border-radius:10px;padding:9px 12px;margin-bottom:10px;}
.trk-st{font-size:11px;color:#fff;background:linear-gradient(135deg,#f472b6,#a855f7);border-radius:99px;padding:2px 9px;font-weight:500;}
.trk-list{position:relative;padding-left:18px;max-height:260px;overflow:auto;-webkit-overflow-scrolling:touch;}
.trk-list::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(#fbcfe8,#e9d5ff);}
.trk-auto{display:flex;align-items:center;gap:7px;margin:2px 0 10px;font-size:12px;color:#666;}
.trk-auto .ta-label{font-weight:500;}
.trk-auto .ta-sw{width:36px;height:20px;border-radius:11px;}
.trk-auto .ta-tip{font-style:normal;font-size:11px;color:#999;}
.trk-wrap{position:relative;}
.trk-pull{display:none;text-align:center;color:#f472b6;font-size:12px;padding:2px 0 8px;font-weight:500;}
.trk-it{position:relative;padding:0 0 16px 10px;}
.trk-it i{position:absolute;left:-18px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #f472b6;box-shadow:0 0 0 3px #fff1f7;}
.trk-it.cur i{background:#f472b6;}
.trk-it b{display:block;font-size:13px;font-weight:500;color:#333;line-height:1.5;}
.trk-it em{display:block;font-style:normal;font-size:11px;color:#999;margin-top:2px;}

/* ===== 大屏（≥560px）覆盖：页眉/内容避让 ===== */
@media(min-width:560px){
  .top{border-radius:0 0 22px 22px;}
  #view{padding-top:59px;}
  .gback{top:76px;}
}
/* ===== 消息通知 ===== */
.ntitle{font-size:17px;font-weight:700;margin-bottom:12px;color:var(--text);}
.nitem{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:10px;box-shadow:0 4px 14px rgba(236,72,153,.06);}
.nitem .nt{display:flex;align-items:center;gap:8px;font-size:14px;}
.nitem .nc{font-size:12px;color:var(--sub);line-height:1.6;margin-top:6px;}
.nitem .ntime{font-size:11px;color:var(--sub);margin-top:6px;}
.nitem.unread{border-color:var(--pink);}
.ndot{width:7px;height:7px;background:var(--pink);border-radius:50%;display:inline-block;margin-left:2px;}

/* ===== 安装 App 引导页 ===== */
.appguide{ padding:16px 14px 24px; }
.ag-head{ display:flex; align-items:center; justify-content:center; gap:8px; font-size:19px; font-weight:700; color:var(--text); margin:8px 0 16px; }
.ag-logo{ font-size:22px; }
.ag-tabs{ display:flex; background:var(--bg); border-radius:22px; padding:4px; margin-bottom:14px; }
.ag-tab{ flex:1; text-align:center; padding:9px 0; font-size:14px; font-weight:600; color:var(--sub); border-radius:18px; cursor:pointer; transition:all .2s; }
.ag-tab.on{ background:var(--pink); color:#fff; box-shadow:0 2px 8px rgba(255,87,163,.35); }
.ag-card{ background:#fff; border-radius:16px; padding:20px 16px; box-shadow:0 4px 16px rgba(0,0,0,.05); }
.ag-dlbtn{ text-align:center; margin:6px 0 10px; }
.ag-dlbtn a{ display:inline-block; background:linear-gradient(135deg,var(--pink),var(--pink2)); color:#fff; font-size:16px; font-weight:700; padding:13px 34px; border-radius:26px; box-shadow:0 6px 16px rgba(255,87,163,.4); }
.ag-iosbig{ text-align:center; font-size:46px; margin:4px 0 6px; }
.ag-tip{ font-size:13px; color:var(--sub); text-align:center; line-height:1.6; padding:0 8px; }
.ag-steps{ margin-top:16px; }
.ag-step{ display:flex; align-items:flex-start; gap:10px; padding:10px 4px; border-bottom:1px dashed #f0e0e8; }
.ag-step:last-child{ border-bottom:none; }
.ag-step b{ flex:0 0 22px; height:22px; line-height:22px; text-align:center; background:var(--pink); color:#fff; font-size:12px; border-radius:50%; }
.ag-step span{ flex:1; font-size:14px; color:var(--text); line-height:1.5; }
.ag-note{ margin-top:14px; text-align:center; font-size:12px; color:#b59aab; }
.ag-foot{ margin-top:18px; text-align:center; font-size:12px; color:var(--sub); }
/* 备案标识（启动页 + 首页底部） */
.sp-beian{display:inline-block;margin-top:8px;color:rgba(255,255,255,.55);text-decoration:none;letter-spacing:1px;font-size:10px;}
.sp-beian:hover{color:#fff;}
.page-foot{margin:20px 16px 4px;padding-top:12px;text-align:center;font-size:11px;color:#b59aab;border-top:1px solid rgba(0,0,0,.04);}
.page-foot a{color:#b59aab;text-decoration:none;letter-spacing:.5px;}
.page-foot a:hover{color:#e0457b;}
