/* =========================================================
   执手记账 · 官网样式（落地页 + 功能二级页）
   设计令牌唯一真相源 = 《官网设计与开发方法论-十年前端标准》§2
   规则：所有颜色/间距/字号/圆角/阴影必须取自 :root，禁止魔法数字
   ========================================================= */
:root{
  /* ---------- 暖灰 9 级（玫瑰档案·暖调） ---------- */
  --neutral-50:#FAF8F6; --neutral-100:#F5F1ED; --neutral-200:#ECE7E2; --neutral-300:#DDD7D1;
  --neutral-400:#C4BDB7; --neutral-500:#9E9790; --neutral-600:#7A746E; --neutral-700:#524E4A; --neutral-800:#2B2826;

  /* ---------- 玫瑰 6 级 ---------- */
  --rose-50:#FFF1F5; --rose-200:#F8C5D3; --rose-400:#E88AA3; --rose-600:#D65A78; --rose-700:#C24A6A; --rose-800:#B8436F;

  /* ---------- 香槟金 3 级 ---------- */
  --gold-light:#F0C870; --gold:#E0A33E; --gold-dark:#B8862A;

  /* ---------- 品牌（冻结，作 rose 别名） ---------- */
  --brand:#D65A78;            /* 主色·品牌 = rose-600 */
  --brand-dark:#B8436F;       /* = rose-800 */
  --brand-light:#E88AA3;      /* = rose-400 */
  --brand-soft:#FFF1F5;       /* = rose-50 */
  --accent:#D65A78;           /* 强调·CTA（场景白名单·婚礼主色） */
  --accent-purple: var(--brand);    /* 官网无场景皮肤注入，恒为品牌玫瑰 --brand（非紫）；保留别名兼容，功能 UI 已改用 --brand/--brand-dark */
  --grad:linear-gradient(135deg,#D65A78,#B8436F);
  --grad-soft:linear-gradient(135deg,#FCE7EE,#FDF2F8);

  /* ---------- 文字（旧别名→neutral；暖黑，禁纯黑） ---------- */
  --ink:#2B2826; --ink-2:#524E4A; --ink-3:#9E9790;
  --line:#ECE7E2;

  /* ---------- 背景 / 卡片 ---------- */
  --bg:#F8F5F2;               /* 页面底（暖米·三端统一） */
  --bg-soft:#FBF7F8;          /* 浅粉分区底 */
  --card:#FFFFFF;

  /* ---------- 功能色（绿已删除；保留 warn/danger） ---------- */
  --warn:#E8A33D; --danger:#D64545;

  /* ---------- 兼容旧类名别名 ---------- */
  --primary:var(--brand); --primary-dark:var(--brand-dark); --primary-light:var(--brand-light);
  --primary-soft:var(--brand-soft); --sub:var(--ink-2);
  --gold-warn:var(--warn); --red:var(--danger);

  /* ---------- 间距（8pt 栅格） ---------- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
  --sp-6:24px; --sp-7:28px; --sp-8:32px; --sp-9:36px; --sp-10:40px; --sp-12:48px; --sp-16:64px; --sp-24:96px;

  /* ---------- 圆角（D8：r-lg=14px） ---------- */
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-xl:18px; --r-pill:999px;
  --radius:var(--r-xl); --radius-sm:var(--r-md); /* 旧别名 */

  /* ---------- 阴影 5 级（暖灰暖影） ---------- */
  --shadow-xs:0 1px 2px rgba(43,40,38,0.04);
  --shadow-sm:0 2px 8px rgba(43,40,38,0.05);
  --shadow-md:0 4px 16px rgba(43,40,38,0.06);
  --shadow-lg:0 8px 32px rgba(43,40,38,0.08);
  --shadow-rose:0 4px 16px rgba(214,90,120,0.12);
  --shadow-card:var(--shadow-sm); /* 旧别名 */
  --shadow-float:var(--shadow-lg); /* 旧别名 */

  /* ---------- 动效 ---------- */
  --duration-fast:120ms; --duration-base:200ms; --duration-slow:320ms; --duration-leisure:500ms;
  --ease-standard:cubic-bezier(0.4,0,0.2,1); --ease-decelerate:cubic-bezier(0,0,0.2,1);
  --ease-accelerate:cubic-bezier(0.4,0,1,1); --ease-bounce:cubic-bezier(0.34,1.56,0.64,1);

  /* ---------- 容器 / 字体 ---------- */
  --maxw:1200px;
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-6);}
section{padding:var(--sp-24) 0;}

/* 字体层级：Display(hero) / H1(section) / H3(card) 三层收敛 */
.sec-title-c{text-align:center;font-size:32px;font-weight:800;letter-spacing:-.5px;line-height:1.25;}
.sec-sub-c{text-align:center;color:var(--ink-2);margin-top:var(--sp-3);font-size:16px;}
.badge{display:inline-block;font-size:13px;font-weight:700;color:var(--brand);background:var(--brand-soft);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);margin-bottom:var(--sp-5);}
.link{color:var(--brand);font-weight:700;font-size:15px;}
.link:hover{text-decoration:underline;}
.tag-soon{display:inline-block;font-size:11px;font-weight:700;color:var(--brand);background:var(--brand-soft);padding:2px 8px;border-radius:var(--r-pill);margin-left:var(--sp-2);vertical-align:middle;letter-spacing:.02em;}

.btn{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:16px;padding:var(--sp-4) var(--sp-8);border-radius:var(--r-pill);cursor:pointer;border:none;transition:.2s;}
.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-md);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.btn-primary:active{transform:scale(.96);filter:brightness(.95);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}
.btn-primary.sm{padding:var(--sp-3) var(--sp-5);font-size:14px;}
.btn-ghost{background:#fff;color:var(--brand-dark);border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--brand);background:var(--brand-soft);}
.btn-ghost:active{transform:scale(.96);filter:brightness(.95);}
.btn-ghost:disabled{opacity:.5;cursor:not-allowed;}
.btn-light{background:#fff;color:var(--brand-dark);}
.btn-light:hover{transform:translateY(-2px);}
.btn-cta-hero{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 32px;
  background:#fff;
  color:#D65A78;
  font-size:17px;
  font-weight:700;
  border-radius:var(--r-md,10px);
  text-decoration:none;
  box-shadow:0 4px 14px rgba(214,90,120,0.25);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.btn-cta-hero:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(214,90,120,0.35);
  background:#FFF0F5;
}
.btn-cta-hero:active{
  transform:scale(.97);
  box-shadow:0 2px 8px rgba(214,90,120,0.2);
}
.btn-arrow{
  font-size:20px;
  transition:transform .2s ease;
}
.btn-cta-hero:hover .btn-arrow{
  transform:translateX(4px);
}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.site-header .wrap.nav{display:flex;align-items:center;justify-content:space-between;height:72px;}
.brand{display:flex;align-items:center;gap:var(--sp-3);font-weight:800;font-size:20px;}
.brand-mark{width:32px;height:32px;border-radius:var(--r-sm);object-fit:contain;flex-shrink:0;}
.brand-name{color:var(--ink);}
.nav-links{display:flex;align-items:center;gap:var(--sp-8);font-size:15px;font-weight:600;color:var(--ink-2);}
.nav-links > a:hover{color:var(--brand);}

/* 下拉导航（功能 ▾ 收纳 F1~F7，米勒定律） */
.has-drop{position:relative;}
.has-drop > .drop-toggle{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font:inherit;color:inherit;background:none;border:none;padding:0;}
.has-drop > .drop-toggle::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;transition:.2s;opacity:.7;}
.has-drop:hover > .drop-toggle{color:var(--brand);}
.has-drop:hover > .drop-toggle::after{transform:rotate(225deg);margin-top:2px;}
.drop-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);min-width:440px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--sp-3);opacity:0;visibility:hidden;transition:.2s;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-1);}
.has-drop:hover .drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.drop-menu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px;} /* hover 缓冲 */
.drop-item{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3);border-radius:var(--r-md);transition:.15s;}
.drop-item:hover{background:var(--bg-soft);}
.drop-item .di-ic{width:34px;height:34px;flex-shrink:0;border-radius:var(--r-sm);background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:17px;}
.drop-item .di-t{font-size:14px;font-weight:700;color:var(--ink);}
.drop-item .di-d{font-size:12px;color:var(--ink-3);margin-top:2px;line-height:1.4;}

/* ---------- Hero ---------- */
.hero{background:var(--bg-soft);padding:var(--sp-16) 0 var(--sp-24);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-12);align-items:center;}
.hero h1{font-size:clamp(38px,5.5vw,56px);font-weight:800;line-height:1.1;letter-spacing:-1px;}
.lede{font-size:18px;color:var(--ink-2);margin:var(--sp-5) 0 var(--sp-8);max-width:520px;line-height:1.7;}
.hero-cta{display:flex;gap:var(--sp-4);flex-wrap:wrap;}
.hero-stats{display:flex;gap:var(--sp-8);margin-top:var(--sp-10);}
.hero-stats div b{display:block;font-size:22px;font-weight:800;color:var(--brand-dark);}
.hero-stats div span{font-size:13px;color:var(--ink-2);}
.hero-visual{display:flex;justify-content:center;}

/* phone mockup */
.phone{width:300px;height:600px;background:#fff;border-radius:42px;box-shadow:var(--shadow-lg);border:8px solid #20232B;padding:var(--sp-6) var(--sp-4);position:relative;}
.phone-notch{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:90px;height:7px;border-radius:var(--r-pill);background:#20232B;}
.phone .screen{position:relative;height:100%;border-radius:18px;overflow:hidden;line-height:0;}
/* ---------- 信任条 / 社会证明 ---------- */
.trust{background:#fff;padding:var(--sp-12) 0;border-bottom:1px solid var(--line);}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6);text-align:center;}
.trust-item b{display:block;font-size:30px;font-weight:800;color:var(--brand-dark);letter-spacing:-.5px;}
.trust-item span{display:block;font-size:14px;color:var(--ink-2);margin-top:var(--sp-2);}

/* ---------- Core features ---------- */
.core{background:#fff;}
.core-block{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-12);align-items:center;margin-top:var(--sp-12);padding:var(--sp-10);background:var(--bg-soft);border-radius:var(--r-xl);}
.core-block.rev{direction:rtl;}
.core-block.rev > *{direction:ltr;}
.core-no{font-size:14px;font-weight:800;color:var(--brand);letter-spacing:.1em;}
.core-text h3{font-size:24px;font-weight:800;margin:var(--sp-3) 0;}
.core-text p{font-size:16px;color:var(--ink-2);line-height:1.7;margin-bottom:var(--sp-4);}
.core-visual{display:flex;justify-content:center;}
.mini-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-6) var(--sp-8);box-shadow:var(--shadow-md);font-size:15px;font-weight:600;color:var(--ink);line-height:1.9;text-align:center;}

/* ---------- Features grid ---------- */
.features{background:var(--bg-soft);}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);margin-top:var(--sp-12);}
.feat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow-sm);transition:.2s;display:block;}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#f3d6df;}
.feat-card .ic{width:46px;height:46px;border-radius:var(--r-md);background:var(--grad-soft);display:flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:var(--sp-4);font-size:22px;}
.feat-card h3{font-size:20px;font-weight:700;margin-bottom:var(--sp-2);}
.feat-card p{font-size:14px;color:var(--ink-2);line-height:1.5;}
.feat-card .more{margin-top:var(--sp-4);font-size:13px;font-weight:700;color:var(--brand);}

/* ---------- Webapp promo ---------- */
.webapp{background:#fff;}
.webapp-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--sp-12);align-items:center;}
.webapp-copy h2{font-size:32px;font-weight:800;margin:var(--sp-3) 0;line-height:1.25;}
.webapp-copy p{font-size:16px;color:var(--ink-2);line-height:1.7;margin-bottom:var(--sp-6);}
.app-win{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;}
.app-bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:#FBFBFD;border-bottom:1px solid var(--line);}
.app-bar .dot-r{width:12px;height:12px;border-radius:50%;background:#FF5F57;}
.app-bar .dot-y{width:12px;height:12px;border-radius:50%;background:#FEBC2E;}
.app-bar .dot-g{width:12px;height:12px;border-radius:50%;background:#28C840;}
.app-url{margin-left:var(--sp-4);font-size:13px;color:var(--ink-2);}
.app-body{display:grid;grid-template-columns:150px 1fr;gap:var(--sp-5);padding:var(--sp-6);align-items:center;}
.donut svg{flex-shrink:0;}
.donut .dn-p{font-size:20px;font-weight:800;fill:var(--brand);}
.donut .dn-l{font-size:11px;fill:var(--ink-2);}
.app-stats{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-2);}
.app-stats .st b{display:block;font-size:18px;font-weight:800;color:var(--ink);}
.app-stats .st span{font-size:12px;color:var(--ink-2);}
.bars{display:flex;align-items:flex-end;gap:var(--sp-3);height:90px;}
.bars i{display:block;width:100%;background:var(--grad);border-radius:6px 6px 0 0;}

/* ---------- Brand story ---------- */
.brand-story{background:var(--bg-soft);}
.brand-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:var(--sp-10);align-items:center;}
.brand-copy h2{font-size:32px;font-weight:800;margin-bottom:var(--sp-4);line-height:1.25;}
.brand-copy p{font-size:16px;color:var(--ink-2);line-height:1.8;margin-bottom:var(--sp-4);}
.brand-quote{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-10);box-shadow:var(--shadow-sm);font-size:20px;font-weight:700;line-height:1.7;color:var(--brand-dark);}

/* ---------- Pricing ---------- */
.pricing{background:#fff;}
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-8);margin-top:var(--sp-12);max-width:1000px;margin-left:auto;margin-right:auto;}
.price-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-10);box-shadow:var(--shadow-sm);position:relative;}
.price-card.hot{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;box-shadow:var(--shadow-md);}
.ribbon{position:absolute;top:-13px;left:var(--sp-10);background:var(--grad);color:#fff;font-size:12px;font-weight:700;padding:var(--sp-1) var(--sp-4);border-radius:var(--r-pill);}
.price-card h3{font-size:22px;font-weight:800;}
.price{font-size:34px;font-weight:800;margin:var(--sp-3) 0 var(--sp-5);}
.price span{font-size:15px;color:var(--ink-2);font-weight:600;}
.price-card ul{list-style:none;margin-bottom:var(--sp-6);}
.price-card li{font-size:15px;padding:var(--sp-3) 0 var(--sp-3) var(--sp-8);position:relative;color:var(--ink);border-bottom:1px solid var(--line);}
.price-card li:last-child{border-bottom:none;}
.price-card li::before{content:"✓";position:absolute;left:0;color:var(--brand);font-weight:800;}
.price-card li.soon::before{content:"◔";color:var(--brand);}
.price-card .btn{width:100%;justify-content:center;}
.price-note{text-align:center;color:var(--ink-2);font-size:14px;margin-top:var(--sp-6);}
/* #253/#254 退款提示（购买页显著位置） */
.refund-notice{max-width:560px;margin:18px auto 0;padding:12px 16px;border:1px solid rgba(214,90,120,.35);background:rgba(214,90,120,.06);border-radius:10px;color:#9a3b54;font-size:13px;line-height:1.7;text-align:center;}

/* ---------- FAQ ---------- */
.faq{background:var(--bg-soft);}
.faq-list{max-width:860px;margin:var(--sp-12) auto 0;}
.faq-list details{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-3);box-shadow:var(--shadow-sm);}
.faq-list summary{font-size:16px;font-weight:700;cursor:pointer;list-style:none;position:relative;padding-right:var(--sp-6);}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+";position:absolute;right:0;top:0;color:var(--brand);font-size:20px;font-weight:800;}
.faq-list details[open] summary::after{content:"−";}
.faq-list details p{font-size:15px;color:var(--ink-2);margin-top:var(--sp-3);line-height:1.7;}

/* ---------- CTA band ---------- */
.cta-band{background:var(--grad);color:#fff;padding:var(--sp-16) 0;text-align:center;}
.cta-in h2{font-size:40px;font-weight:800;letter-spacing:-.5px;}
.cta-in p{font-size:18px;opacity:.92;margin:var(--sp-3) 0 var(--sp-8);}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-soft);border-top:1px solid var(--line);padding:var(--sp-16) 0 var(--sp-8);}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:var(--sp-8);}
.foot-brand{display:flex;gap:var(--sp-3);align-items:flex-start;}
.foot-brand p{font-size:14px;color:var(--ink-2);line-height:1.7;margin-top:var(--sp-2);}
.foot-col h4{font-size:15px;font-weight:700;margin-bottom:var(--sp-4);color:var(--ink);}
.foot-col a{display:block;font-size:14px;color:var(--ink-2);padding:var(--sp-2) 0;}
.foot-col a:hover{color:var(--brand);}
.foot-col .foot-meta{display:block;font-size:13px;color:var(--ink-3);padding:var(--sp-2) 0;}
.foot-col .foot-note{display:block;font-size:14px;color:var(--ink-2);padding:var(--sp-2) 0;}
.story-center{max-width:760px;margin:0 auto;text-align:center;}
.feat-card p{font-size:15px;color:var(--ink-2);line-height:1.7;margin-top:var(--sp-2);}
.promise{list-style:none;margin-top:var(--sp-2);}
.promise li{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-4) 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink);line-height:1.6;}
.promise li::before{content:"✓";color:var(--brand);font-weight:800;flex:0 0 auto;}
.foot-bottom{text-align:center;font-size:13px;color:var(--ink-2);margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--line);}
.icp-slot{margin-top:8px;font-size:12px;color:var(--ink-3);}
.icp-slot a{color:var(--ink-3);text-decoration:none;}
.icp-slot a:hover{text-decoration:underline;}

/* ---------- Feature detail page (F1~F7) ---------- */
.detail-hero{padding:var(--sp-16) 0 var(--sp-10);background:var(--bg-soft);}
.crumb{font-size:14px;color:var(--ink-2);margin-bottom:var(--sp-4);}
.crumb a:hover{color:var(--brand);}
.detail-hero h1{font-size:42px;font-weight:800;letter-spacing:-.5px;line-height:1.15;}
.detail-hero .sub{font-size:17px;margin-top:var(--sp-3);color:var(--ink-2);max-width:560px;}
.mock-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);margin-top:var(--sp-10);}
.screen{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
.screen .head{background:var(--grad);color:#fff;padding:var(--sp-5) var(--sp-6);font-size:18px;font-weight:700;display:flex;align-items:center;gap:var(--sp-3);}
.screen .body{padding:var(--sp-6);}
.fld{display:grid;grid-template-columns:96px 1fr;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);align-items:start;}
.fld:last-of-type{border-bottom:none;}
.fld .k{font-size:14px;color:var(--ink-2);font-weight:600;padding-top:2px;}
.fld .v{font-size:15px;color:var(--ink);}
.fld .v.big{font-size:24px;font-weight:800;color:var(--brand);}
/* B3 记账页精简演示：头卡内必填徽标 + 选填折叠块 */
.screen .head .screen-badge{margin-left:auto;font-size:12px;font-weight:600;background:rgba(255,255,255,.22);padding:2px 9px;border-radius:10px;white-space:nowrap;}
.fold{margin-top:10px;padding:12px 14px;background:#FAF7FB;border:1px dashed #E8D4F0;border-radius:12px;}
.fold-t{font-size:13px;font-weight:700;color:#6b4a78;display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.fold-t .tag{font-size:11px;font-weight:700;color:#fff;background:#D65A78;padding:1px 7px;border-radius:10px;}
.fold-items{display:flex;flex-wrap:wrap;gap:6px;}
.fold-items span{font-size:12.5px;color:#555;background:#fff;border:1px solid #EADCEF;padding:3px 9px;border-radius:10px;}
.quick{margin-top:var(--sp-5);}
.quick .ql{font-size:13px;color:var(--ink-2);margin-bottom:var(--sp-3);}
.chips{display:flex;gap:var(--sp-3);flex-wrap:wrap;}
.chip{font-size:14px;font-weight:600;padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-dark);border:1px solid #f3d6df;}
.seg2{display:inline-flex;background:#f2f3f5;border-radius:var(--r-pill);padding:var(--sp-1);margin-bottom:var(--sp-4);}
.seg2 span{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);font-size:13px;font-weight:600;color:var(--ink-2);}
.seg2 span.on{background:#fff;color:var(--brand);box-shadow:var(--shadow-sm);}
.kpis{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);}
.kpi{flex:1;background:var(--bg-soft);border-radius:var(--r-md);padding:var(--sp-4);text-align:center;}
.kpi .v{font-size:22px;font-weight:800;}
.kpi .v.exp{color:var(--brand);}.kpi .v.inc{color:var(--brand);}
.kpi .l{font-size:12px;color:var(--ink-2);}
.searchbar{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-soft);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);font-size:13px;color:var(--ink-2);margin-bottom:var(--sp-4);}
.rec{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--line);}
.rec:last-of-type{border-bottom:none;}
.rec .c{font-size:14px;font-weight:600;}
.rec .c .sub{font-size:12px;color:var(--ink-2);font-weight:400;display:block;margin-top:2px;}
.rec .a{font-size:16px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums;}
.rec .a.exp{color:var(--brand);}.rec .a.inc{color:var(--brand);}
.bstat{display:flex;justify-content:space-between;align-items:center;margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1.5px solid var(--line);font-size:14px;}
.bstat .sum{font-weight:800;font-variant-numeric:tabular-nums;}.bstat .sum b{color:var(--brand);}
.ratio-bar{height:12px;border-radius:var(--r-pill);background:#eee;display:flex;overflow:hidden;margin-top:var(--sp-2);}
.ratio-bar i{display:block;height:100%;}
.w-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);margin-top:var(--sp-10);}
.w-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-6);box-shadow:var(--shadow-sm);}
.w-card h3{font-size:18px;font-weight:800;margin-bottom:var(--sp-4);display:flex;align-items:center;justify-content:space-between;}
.w-card h3 .lk{font-size:13px;font-weight:600;color:var(--brand);}
.big3{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);}
.big3 .b{flex:1;}
.big3 .b .l{font-size:12px;color:var(--ink-2);}
.big3 .b .v{font-size:20px;font-weight:800;}
.pbar{height:14px;border-radius:var(--r-pill);background:var(--line);overflow:hidden;margin:var(--sp-2) 0 var(--sp-1);}
.pbar i{display:block;height:100%;background:var(--grad);}
.warn{background:#FFF6F6;border:1px solid #f3c0c0;color:#dc2626;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:13px;font-weight:600;margin-top:var(--sp-4);}
.ms{display:flex;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.ms:last-child{border-bottom:none;}
.ms .ck{width:24px;height:24px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;margin-top:2px;}
.ms .ck.done{background:var(--brand);color:#fff;}
.ms .t{font-size:14px;font-weight:600;}
.ms .t .sub{font-size:12px;color:var(--ink-2);font-weight:400;display:block;margin-top:2px;}
.ms .d{margin-left:auto;font-size:12px;font-weight:700;color:var(--brand);}
.ms .d.wait{color:var(--warn);}
.back-link{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:14px;font-weight:600;color:var(--brand);margin-bottom:var(--sp-2);}
.back-link:hover{text-decoration:underline;}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .hero-grid,.webapp-grid,.brand-grid{grid-template-columns:1fr;text-align:center;}
  .hero h1{font-size:42px;}
  .hero-cta,.hero-stats{justify-content:center;}
  .core-block,.core-block.rev{grid-template-columns:1fr;direction:ltr;}
  .feat-grid{grid-template-columns:repeat(2,1fr);}
  .price-grid{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-8);}
  .nav-links{display:none;}
  .mock-grid,.w-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:repeat(3,1fr);} /* 平板：5→3 列，避免邮箱等长串溢出 */
  .foot-col a,.foot-col .foot-note{overflow-wrap:anywhere;} /* 安全网：长邮箱/链接不断列 */
}
@media(max-width:560px){
  .feat-grid{grid-template-columns:1fr;}
  .hero h1{font-size:34px;}
  .sec-title-c{font-size:28px;}
  section{padding:var(--sp-16) 0;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}

/* 尊重减少动效偏好 */
@media(prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important;scroll-behavior:auto !important;}
}

/* ================= 网页端联动工作台 app.html ================= */

/* ============ V3 全局统一规范（2026-07-18 全局优化 · 工作台作用域）============
   工作台复用全局主色（#D65A78 粉），与官网落地页一致，不再使用洋红紫 var(--brand)。 */
.wb-shell{
  background:var(--bg);
  --brand:#D65A78; --brand-dark:#B8436F; --brand-light:#E88AA3; --accent:#D65A78;
  --grad:linear-gradient(135deg,#D65A78,#B8436F);
  --grad-soft:linear-gradient(135deg,#FCE7EE,#FDF2F8);
  --brand-soft:#FFF1F5;
  --bg:#F8F5F2; --bg-soft:#FBF7F8; --card:#FFFFFF;
  --ink:#1F2329; --ink-2:#5A6169; --ink-3:#9AA0A6;
  --line:#ECECEF;
  --shadow-card:0 4px 16px rgba(31,35,41,.06);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;
}
/* 字体四级体系 */
.wb-shell .wb-head h2{font-size:18px;font-weight:600;color:var(--ink);}
/* 各 view 头部标题统一跟随场景配色（由 applySceneSkin 注入 --scene-g1）— 2026-07-27 W1 */
.wb-shell .wb-head h2{color:var(--scene-g1,#D65A78);}
.wb-shell .wb-panel h4{font-size:14px;font-weight:500;color:#374151;margin:0 0 16px;}
.wb-shell .wb-tip{font-size:12px;color:var(--ink-3);line-height:1.6;margin:0 0 14px;}
/* 卡片：去边框 + 纯白 + 12px 圆角 + 极淡投影 */
.wb-shell .wb-panel,.wb-shell .stat-card{border:none;background:var(--card);border-radius:12px;box-shadow:var(--shadow-card);}
/* 统一输入控件：高40 圆角8 边框#e5e7eb 聚焦粉紫+外发光 */
.wb-shell .wb-form input,.wb-shell .wb-form select,.wb-shell .wb-form textarea,
.wb-shell .wb-toolbar input,.wb-shell .wb-toolbar select,
.wb-shell .wb-inline input,.wb-shell .wb-inline-input,
.wb-shell .ms-add-inner input,.wb-shell .bb-edit input{
  height:40px;padding:0 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:var(--ink);background:var(--card);font-family:inherit;transition:border-color .18s,box-shadow .18s;
}
.wb-shell .wb-form textarea{height:auto;min-height:120px;padding:12px;line-height:1.6;resize:vertical;}
.wb-shell .wb-form input:focus,.wb-shell .wb-form select:focus,.wb-shell .wb-form textarea:focus,
.wb-shell .wb-toolbar input:focus,.wb-shell .wb-toolbar select:focus,
.wb-shell .wb-inline input:focus,.wb-shell .wb-inline-input:focus,
.wb-shell .ms-add-inner input:focus,.wb-shell .bb-edit input:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(214,90,120,0.15);
}
/* 统一美化 wb-shell 内其他原生 select（账本切换/记录表单/筛选/供应商等）：去原生箭头 + 品牌色自定义箭头 */
.wb-shell .wb-form select,.wb-shell .wb-toolbar select,.wb-shell .wb-inline select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23D65A78' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:10px;}
.wb-shell .wb-form select:hover,.wb-shell .wb-toolbar select:hover,.wb-shell .wb-inline select:hover{border-color:var(--brand);}
/* 统一按钮：主按钮粉紫渐变 hover微移；次按钮灰底 */
.wb-shell .btn-primary,.wb-shell .btn-ghost{height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;font-family:inherit;border:none;transition:transform .15s,box-shadow .15s,background .15s,opacity .15s;padding:0 18px;}
.wb-shell .btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-md);}
.wb-shell .btn-primary:hover{opacity:.9;transform:translateY(-1px);}
.wb-shell .btn-primary:active{transform:scale(.96);filter:brightness(.95);}
.wb-shell .btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}
.wb-shell .btn-ghost{background:#f3f4f6;color:#4b5563;}
.wb-shell .btn-ghost:hover{background:#e5e7eb;}
.wb-shell .btn-ghost:active{transform:scale(.96);filter:brightness(.95);}
.wb-shell .btn-ghost:disabled{opacity:.5;cursor:not-allowed;}
.wb-shell .btn-danger{height:40px;display:inline-flex;align-items:center;border-radius:8px;font-weight:500;font-size:14px;background:#FEF2F2;color:#DC2626;border:1px solid #FECACA;cursor:pointer;font-family:inherit;padding:0 18px;}
.wb-shell .btn-danger:hover{background:#FEE2E2;}
.wb-shell .btn-ghost.sm,.wb-shell .btn-primary.sm,.wb-shell .btn-danger.sm{height:34px;padding:0 14px;font-size:13px;}
/* 表单：label 右对齐 + 横向 + 间距 20px */
.wb-shell .wb-form{gap:20px;}
.wb-shell .field{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:12px;}
.wb-shell .field label{font-size:13px;color:var(--ink-2);font-weight:600;text-align:right;}
/* 左侧导航选中态竖条 + 淡底；分组标题间距；底部状态 */
.wb-shell .wb-nav-item.active{background:rgba(214,90,120,.08)!important;color:var(--brand)!important;font-weight:600;box-shadow:inset 3px 0 0 var(--brand)!important;}
.wb-shell .wb-side-tt{font-size:12px;font-weight:500;color:var(--ink-3);margin:12px 10px 4px;padding:0;letter-spacing:.06em;}
.wb-shell .wb-side-foot{line-height:1.8;}
.wb-shell .ls-row{justify-content:flex-start;gap:8px;}
/* 总览 */
.wb-shell .stat-card .v{font-size:24px;font-weight:600;}
.wb-shell .stat-card{background:linear-gradient(135deg,#FFF1F8,#FFF1F5);}
.wb-shell .ov-recent .li:hover{background:var(--bg-soft);}
.wb-shell .ov-recent .li .cat-tag{display:inline-block;font-size:11px;font-weight:600;color:var(--brand-dark);background:var(--brand-soft);padding:1px 7px;border-radius:6px;margin-right:6px;vertical-align:middle;}
.wb-shell .ov-empty .wb-empty-btns{display:flex;gap:12px;justify-content:center;margin-top:10px;flex-wrap:wrap;}
/* 账单：下划线 tab + 删除 hover 显 + 行 hover */
.wb-shell .wb-seg{background:none;border:none;padding:0;gap:4px;margin-bottom:18px;}
.wb-shell .seg{border:0;background:none;padding:8px 4px;color:var(--ink-2);font-weight:600;border-bottom:2px solid transparent;border-radius:0;}
.wb-shell .seg.on{color:var(--brand);border-bottom-color:var(--brand);box-shadow:none;background:none;}
.wb-shell .li.row .li-del{opacity:0;transition:opacity .15s;}
.wb-shell .li.row:hover .li-del{opacity:1;}
.wb-shell .li:hover{background:var(--bg-soft);}
/* 一句话记账：输入框加大 + 预览区列表式可编辑行 */
.wb-shell .smart-textarea{font-size:16px !important;color:var(--ink);line-height:1.8;padding:18px 20px !important;min-height:180px !important;border-color:var(--line);border-radius:12px !important;background:var(--card);}
.wb-shell .smart-textarea:focus{border-color:var(--brand) !important;box-shadow:0 0 0 4px rgba(214,90,120,.1) !important;}
.wb-shell .smart-input-panel{display:flex;flex-direction:column;}
.wb-shell .smart-preview-area{display:block;min-height:0;}
.wb-shell .smart-list{margin-top:4px;}
.wb-shell .sr-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.wb-shell .sr-all{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer;}
.wb-shell .sr-count{font-size:12px;color:var(--ink-3);}
.wb-shell .smart-row-item{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px;}
.wb-shell .smart-row-item .sr-fields{display:grid;grid-template-columns:1.2fr 1fr .9fr .9fr 1.5fr;gap:8px;flex:1;align-items:center;}
.wb-shell .smart-row-item.sr-gift .sr-fields{grid-template-columns:1.1fr .9fr .9fr .9fr 1.5fr;}
.wb-shell .smart-row-item select,.wb-shell .smart-row-item input{padding:0 10px;height:36px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;color:var(--ink);background:var(--card);width:100%;}
/* 一句话记账区分类下拉框：去原生箭头 + 品牌色自定义箭头 + hover/focus 态 */
.wb-shell .smart-row-item select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23D65A78' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px;}
.wb-shell .smart-row-item select:hover{border-color:var(--brand);}
.wb-shell .smart-row-item select:focus,.wb-shell .smart-row-item input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(214,90,120,0.15);}
/* 付款状态三态分段按钮：全款绿 / 定金绿 / 未付红，全部可见可点 */
.wb-shell .sr-pay{display:inline-flex;align-items:center;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#f3f4f6;height:36px;padding:0;}
.wb-shell .pay-pill{border:none;background:transparent;height:36px;padding:0 11px;font-size:13px;font-family:inherit;color:#4b5563;cursor:pointer;line-height:1;white-space:nowrap;transition:background .12s,color .12s;}
.wb-shell .pay-pill:hover{background:#e9eaec;}
.wb-shell .pay-pill.active[data-pay="paid"]{background:var(--brand);color:#fff;font-weight:600;}
.wb-shell .pay-pill.active[data-pay="deposit"]{background:var(--gold);color:#fff;font-weight:600;}
.wb-shell .pay-pill.active[data-pay="pending"]{background:#D64545;color:#fff;font-weight:600;}
.wb-shell .sr-pay-val{display:none;}
.wb-shell .sr-foot{margin-top:14px;display:flex;justify-content:flex-end;}
/* 已入账历史记录区（和记账/礼金数据打通） */
.wb-shell #smart-history-wrap{display:block!important;}
.wb-shell .smart-history-list{max-height:320px;overflow-y:auto;}
.wb-shell .smart-hist-item{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid #f3f4f6;gap:12px;font-size:13px;transition:background .12s;}
.wb-shell .smart-hist-item:last-child{border-bottom:none;}
.wb-shell .smart-hist-item:hover{background:#fafafa;}
.wb-shell .hist-type{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;}
.wb-shell .hist-type.expense{background:#FFF1F5;color:var(--brand);}
.wb-shell .hist-type.gift{background:var(--brand-soft);color:var(--brand);}
.wb-shell .hist-info{flex:1;min-width:0;}
.wb-shell .hist-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wb-shell .hist-sub{color:var(--ink-3);font-size:12px;margin-top:2px;}
.wb-shell .hist-amt{font-weight:600;color:var(--ink);white-space:nowrap;font-size:14px;text-align:right;font-variant-numeric:tabular-nums;}
.wb-shell .hist-pay-tag{display:inline-block;font-size:11px;border-radius:4px;padding:0 5px;line-height:18px;vertical-align:middle;margin-left:6px;}
.wb-shell .hist-pay-paid{color:var(--brand);background:var(--brand-soft);border:1px solid #F8C5D3;}
.wb-shell .hist-pay-deposit{color:var(--gold);background:#FBF1E0;border:1px solid #EAD7B0;}
.wb-shell .hist-pay-pending{color:#D64545;background:#FDECEC;border:1px solid #F6C9C9;}
.wb-shell .smart-hist-empty{padding:32px 20px;text-align:center;color:var(--ink-3);font-size:13px;}
.wb-shell .smart-hist-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:12px;color:var(--ink-2);background:var(--bg-soft);font-weight:700;border-bottom:1px solid var(--line);}
/* 预算分项渐变（局部--grad已紫） + 快捷操作图标 */
.wb-shell .bb-track i{background:var(--grad);}
.wb-shell .bud-auto-ic{margin-right:6px;}
/* 备婚请柬高亮操作卡 */
.wb-shell .inv-entry{border:1px solid #F3D6DF!important;background:linear-gradient(135deg,#FCE7EE,#FFF1F5);}
.wb-shell .inv-entry h4{color:var(--brand-dark);}
/* 导入导出报表页面 V3 品牌化（卡片式 + 统计条 + 危险区增强） */
.wb-shell .data-hero-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.wb-shell .dh-stat{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,#FCE7EE,#FDF2F8);border:1px solid #F3D6DF;border-radius:12px;}
.wb-shell .dh-ic{font-size:26px;flex-shrink:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;}
.wb-shell .dh-stat b{display:block;font-size:20px;font-weight:700;color:var(--ink);line-height:1.2;}
.wb-shell .dh_stat span,.wb-shell .dh-stat span{font-size:12px;color:var(--ink-3);}
.wb-shell .data-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:0;}
.wb-shell .data-card{border:none;overflow:hidden;}
.wb-shell .data-card-header{display:flex;align-items:flex-start;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px;}
.wb-shell .dch-icon-wrap{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.wb-shell .dch-icon-wrap.pink{background:linear-gradient(135deg,var(--brand),#B8436F);}
.wb-shell .dch-icon-wrap.green{background:linear-gradient(135deg,var(--brand),var(--brand-dark));}
.wb-shell .dch-text h4{font-size:16px;font-weight:600;color:var(--ink);margin:0 0 4px;}
.wb-shell .dch-desc{font-size:13px;color:var(--ink-3);line-height:1.5;margin:0;}
.wb-shell .export-btns{display:flex;flex-direction:column;gap:10px;}
.wb-shell .export-btns .btn-primary,.wb-shell .export-btns .btn-ghost{justify-content:flex-start;gap:10px;height:44px;}
.wb-shell .db-ic{font-size:16px;width:24px;text-align:center;}
.wb-shell .report-section{border:none;}
.wb-shell .report-sec-head{margin-bottom:16px;}
.wb-shell .report-title-group{display:flex;align-items:flex-start;gap:14px;}
.wb-shell .report-sec-ic{font-size:26px;flex-shrink:0;}
.wb-shell .report-title-group h4{font-size:16px;font-weight:600;color:var(--ink);margin:0 0 4px;}
.wb-shell .report-sec-sub{font-size:13px;color:var(--ink-3);margin:0;line-height:1.5;}
.wb-shell .report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.wb-shell .report-chip{display:flex;align-items:flex-start;gap:12px;padding:18px 16px;border:1px solid var(--line);background:var(--card);border-radius:12px;cursor:pointer;text-align:left;font-family:inherit;transition:transform .15s,box-shadow .15s,border-color .15s;}
.wb-shell .report-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand);}
.wb-shell .rc-ic{font-size:28px;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);border-radius:10px;}
.wb-shell .rc-txt{flex:1;min-width:0;}
.wb-shell .rc-txt b{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:3px;}
.wb-shell .rc-txt span{font-size:12px;color:var(--ink-3);line-height:1.4;}
.wb-shell .report-chip.more{border-style:dashed;align-items:center;justify-content:center;}
.wb-shell .report-chip.more .rc-txt{text-align:center;}
.wb-shell .report-chip.more b{font-size:13px;}
.wb-shell .dropzone{padding:36px 20px;border:2px dashed #F0DCE6;background:linear-gradient(135deg,#FCE7EE,#FFF1F5);border-radius:14px;transition:border-color .2s,background .2s;}
.wb-shell .dropzone:hover,.wb-shell .dropzone.over{border-color:var(--brand);background:#FDF0FF;}
.danger-zone-card .dz-ic{font-size:32px;}
.danger-zone-card .dz-tx{font-size:15px;font-weight:600;color:var(--ink);}
.danger-zone-card .dz-sub{font-size:12.5px;color:var(--ink-3);}
/* 危险区卡片 */
.danger-zone-card{background:linear-gradient(135deg,#FEF2F2,#FFF5F5);border:1px solid #FECACA;border-radius:12px;overflow:hidden;}
.danger-zone-card .dz-card-inner{padding:22px 24px;}
.danger-zone-card .dz-warning-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;}
.danger-zone-card .dz-warn-ic{font-size:28px;flex-shrink:0;}
.danger-zone-card .dz-warn-text h4{font-size:16px;font-weight:600;color:#991B1B;margin:0 0 6px;}
.danger-zone-card .dz-warn-desc{font-size:13.5px;color:#7F1D1D;line-height:1.6;margin:0;}
.danger-zone-card .dz-warn-desc strong{color:#DC2626;}
.danger-zone-card .dz-action-row{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-top:16px;border-top:1px dashed #FECACA;}
.danger-zone-card .dz-confirm-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#7F1D1D;font-weight:500;cursor:pointer;}
.danger-zone-card .dz-confirm-label input{width:16px;height:16px;accent-color:#DC2626;cursor:pointer;}

/* 响应式 */
@media(max-width:900px){
  .wb-shell .data-hero-bar{grid-template-columns:repeat(2,1fr);}
  .wb-shell .data-cards-row{grid-template-columns:1fr;}
  .wb-shell .report-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .wb-shell .data-hero-bar{grid-template-columns:1fr;}
  .wb-shell .report-grid{grid-template-columns:1fr;}
.wb-shell .report-chip{border:1px solid var(--line);background:#f3f4f6;color:#4b5563;align-items:center;text-align:left;}
.wb-shell .report-chip:hover{background:#e5e7eb;transform:none;box-shadow:none;}
.wb-shell .report-chip b{color:#374151;}
.wb-shell .report-chip span{color:#9ca3af;}
.wb-shell .report-chip.more{border-style:dashed;justify-content:center;}
.wb-shell .dropzone{border:2px dashed #F0DCE6;background:var(--brand-soft);}
}
.wb-shell .bud-hero-panel{background:linear-gradient(135deg,#FCE7EE,#FDF2F8);border-color:#F3D6DF;}
.wb-shell .bud-hero-input-wrap{border-color:var(--line);}
.wb-shell .bud-hero-input-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(214,90,120,.1);}
/* 趋势/分布图旧红转紫 */
.wb-shell .trend-leg .lg.exp::before{background:var(--brand);}
.wb-shell .rel-bar .rb-track i{background:var(--grad);}
/* 设置分类圆点 + hover 显按钮 */
.wb-shell .cat-item .cat-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);flex:0 0 auto;}
.wb-shell .cat-btns{opacity:0;transition:opacity .15s;}
.wb-shell .cat-item:hover .cat-btns{opacity:1;}

/* 深色主题下工作台变量与覆盖 */
[data-theme="dark"] .wb-shell{
  --brand-soft:#2E2A28; --bg:#15171C; --bg-soft:#1E2128; --card:#1E2128; --ink:#EDEFF2; --ink-2:#A6ADB6; --ink-3:#6E7681; --line:#2C3038;
  --grad-soft:linear-gradient(135deg,#23242e,#1E2128); --shadow-card:0 2px 12px rgba(0,0,0,.4);
}
[data-theme="dark"] .wb-shell .stat-card{background:linear-gradient(135deg,#1E2128,#1E2128);}
[data-theme="dark"] .wb-shell .inv-entry{background:linear-gradient(135deg,#23242e,#1E2128);border-color:#2E2A28!important;}
[data-theme="dark"] .wb-shell .btn-ghost{background:#262A32;color:#A6ADB6;}
[data-theme="dark"] .wb-shell .btn-ghost:hover{background:#2E333C;}
[data-theme="dark"] .wb-shell .btn-danger{background:#2A1A1A;color:#F87171;border-color:#5A2A2A;}
[data-theme="dark"] .wb-shell .report-chip{background:#262A32;color:#A6ADB6;}
[data-theme="dark"] .wb-shell .report-chip b{color:#EDEFF2;}
[data-theme="dark"] .wb-shell .report-chip span{color:#6E7681;}
[data-theme="dark"] .wb-shell .li:hover{background:#262A32;}
[data-theme="dark"] .wb-shell .bud-hero-panel{background:linear-gradient(135deg,#23242e,#1E2128);border-color:#2E2A28;}

[hidden]{display:none !important;}
.wb-banner{display:flex;align-items:center;gap:10px;padding:10px 24px;background:var(--grad-soft);border-bottom:1px solid #F0DCE6;font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.wb-banner-ic{font-size:18px;flex:0 0 auto;}
.wb-banner-tx b{color:var(--brand-dark);}
.wb-banner .road{color:var(--brand);font-weight:700;}

.wb-shell{display:flex;align-items:flex-start;}
.wb-side{position:sticky;top:72px;flex:0 0 232px;align-self:flex-start;height:calc(100vh - 72px);overflow:auto;background:var(--bg-soft);border-right:1px solid var(--line);padding:16px 14px;}
.wb-book{display:flex;gap:6px;margin-bottom:14px;}
.wb-book select{flex:1;min-width:0;padding:9px 10px;border:1.5px solid var(--line);border-radius:var(--r-md);font-size:14px;font-family:inherit;color:var(--ink);background:var(--card);font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23D65A78' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px;}
.wb-book select:hover{border-color:var(--brand);}
.wb-book button{flex:0 0 auto;width:38px;border:1.5px solid var(--line);background:var(--card);border-radius:var(--r-md);font-size:18px;cursor:pointer;color:var(--brand);font-family:inherit;}
.wb-side-tt{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);padding:6px 10px 6px;}
.wb-nav{display:flex;flex-direction:column;gap:4px;}
.wb-nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:10px 12px;border-radius:var(--r-md);color:#7A746E;font-size:15px;font-family:inherit;transition:background .18s,color .18s,box-shadow .18s;}
.wb-nav-item .ic{width:18px;text-align:center;opacity:.8;font-size:15px;color:inherit;}
.wb-nav-item:hover{background:rgba(214,90,120,0.04);color:var(--brand);}
.wb-shell .wb-nav-item:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(214,90,120,.35);}
.wb-nav-item.active{background:var(--grad-soft);color:var(--brand);font-weight:700;}
.wb-nav-item.active .ic{opacity:1;}
.wb-side-foot{margin-top:14px;padding:12px 12px 4px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-2);}
.ls-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;}
.ls-ok{color:var(--brand);font-weight:700;}
.ls-plan{color:var(--warn);font-weight:700;}

.wb-main{flex:1;padding:32px 36px;overflow:auto;min-width:0;}
.wb-view{display:none;}
.wb-view.active{display:block;animation:wbFade .25s ease;}
@keyframes wbFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.wb-head{display:flex;align-items:baseline;gap:12px;margin-bottom:22px;flex-wrap:wrap;}
.wb-head h2{font-size:24px;margin:0;color:var(--ink);}
.wb-head-sub{color:var(--ink-3);font-size:14px;}
.btn-primary.sm,.btn-ghost.sm,.btn-danger.sm{padding:8px 14px;font-size:13px;}

.wb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;}
.wb-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.wb-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-card);}
.wb-panel h4{margin:0 0 16px;font-size:16px;color:var(--ink);}

.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-card);}
.stat-card .v{font-size:26px;font-weight:800;color:var(--ink);line-height:1.2;}
.stat-card .v.inc{color:var(--brand);}
.stat-card .v.exp{color:var(--brand);}
.stat-card .v.over{color:var(--danger);}
.stat-card .v.warn{color:var(--warn);}
.stat-card .l{font-size:13px;color:var(--ink-3);margin-top:6px;}

.wb-list{display:flex;flex-direction:column;gap:8px;}
.li{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg-soft);border-radius:var(--r-md);gap:10px;}
.li.row{align-items:center;}
.li .c{display:flex;flex-direction:column;font-size:15px;color:var(--ink);font-weight:600;min-width:0;}
.li .c .sub{font-size:12px;color:var(--ink-3);font-weight:400;margin-top:2px;}
.li .a{font-weight:800;font-size:15px;white-space:nowrap;}
.li .a.exp{color:var(--brand);}
.li .a.inc{color:var(--brand);}
.li .a.warn{color:var(--warn);}
.li.muted{color:var(--ink-3);font-weight:400;justify-content:center;}
.li-del{margin-left:auto;background:none;border:1px solid var(--line);color:var(--danger);border-radius:var(--r-sm);padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;flex:0 0 auto;}
.li-del:hover{background:#FDECEC;}
.wb-shell .pend-summary{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:18px;}
.wb-shell .pend-edit{background:var(--brand-soft);}
.wb-shell .pend-edit-inp{display:flex;align-items:center;gap:8px;margin-left:auto;}
.wb-shell .pend-edit-inp input{width:140px;}
.li-restore{margin-left:auto;background:none;border:1px solid var(--line);color:var(--brand);border-radius:var(--r-sm);padding:4px 12px;font-size:12px;cursor:pointer;font-family:inherit;flex:0 0 auto;}
.li-restore:hover{background:#EAF7F0;}
.li-chk{flex:0 0 auto;display:flex;align-items:center;}
.li-btns{display:flex;gap:8px;flex:0 0 auto;}

.wb-seg{display:inline-flex;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px;margin-bottom:18px;}
.seg{border:0;background:none;padding:8px 20px;border-radius:var(--r-pill);cursor:pointer;font-family:inherit;font-size:14px;color:var(--ink-2);font-weight:600;}
.seg.on{background:var(--card);color:var(--brand);box-shadow:var(--shadow-sm);}
.wb-toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.wb-toolbar select,.wb-toolbar input{flex:1;min-width:160px;}
.wb-sum{margin-top:14px;font-size:14px;color:var(--ink-2);}
.wb-sum b{color:var(--brand-dark);}

/* 表单 */
.wb-form{display:flex;flex-direction:column;gap:14px;}
.wb-form-btns{display:flex;gap:10px;flex-wrap:wrap;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:13px;color:var(--ink-2);font-weight:600;}
.wb-form input,.wb-form select,.wb-form textarea,.wb-toolbar input,.wb-toolbar select{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:var(--r-md);font-size:15px;font-family:inherit;color:var(--ink);background-color:var(--card);transition:border-color .18s,box-shadow .18s;}
.wb-form input:focus,.wb-form select:focus,.wb-form textarea:focus,.wb-toolbar input:focus,.wb-toolbar select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.wb-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);}
.btn-primary,.btn-ghost{display:inline-block;border:0;cursor:pointer;font-family:inherit;font-weight:700;font-size:15px;padding:12px 22px;border-radius:var(--r-md);transition:transform .15s,box-shadow .15s,background .15s;text-decoration:none;}
.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-md);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.btn-primary:active{transform:scale(.96);filter:brightness(.95);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}
.wb-form button.btn-primary{width:100%;}
.wb-form-btns button.btn-primary{width:auto;}
.btn-ghost{background:var(--card);color:var(--brand-dark);border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--brand);background:var(--brand-soft);}
.btn-ghost:active{transform:scale(.96);filter:brightness(.95);}
.btn-ghost:disabled{opacity:.5;cursor:not-allowed;}
.btn-danger{background:var(--card);color:var(--danger);border:1.5px solid #F3C9C9;cursor:pointer;font-family:inherit;font-weight:700;font-size:14px;padding:10px 18px;border-radius:var(--r-md);}
.btn-danger:hover{background:#FDECEC;}

.wb-inline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.wb-inline input{padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-md);font-family:inherit;font-size:15px;background:var(--card);color:var(--ink);}
.wb-inline-input{flex:1;min-width:160px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-md);font-family:inherit;font-size:14px;background:var(--card);color:var(--ink);}
.wb-countdown{font-size:15px;font-weight:700;color:var(--brand);}
.wb-countdown.past{color:var(--ink-3);}

/* 总览 */
.ov-budget{display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
.ov-stages{flex:1;min-width:200px;display:flex;flex-direction:column;gap:12px;}
.stg-top{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2);margin-bottom:4px;}
.stg-top .over{color:var(--danger);font-weight:700;}
.stg-track{height:8px;background:var(--bg-soft);border-radius:var(--r-pill);overflow:hidden;}
.stg-track i{display:block;height:100%;background:var(--grad);border-radius:var(--r-pill);}
.stg-track i.over{background:var(--danger);}
.trend-leg{display:flex;gap:16px;font-size:12.5px;color:var(--ink-2);margin-top:4px;}
.trend-leg .lg{display:flex;align-items:center;gap:5px;}
.trend-leg .lg::before{content:"";width:10px;height:10px;border-radius:3px;display:inline-block;}
.trend-leg .lg.exp::before{background:#D65A78;}
.trend-leg .lg.inc::before{background:var(--brand);}
.tn-l{fill:var(--ink-3);font-size:10px;}

/* 一句话记账 */
.wb-textarea{resize:vertical;line-height:1.6;}
.wb-examples{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--ink-3);}
.wb-shell .smart-hint{font-size:12px;color:var(--ink-3);text-align:right;margin-top:4px;}
.chip{font-size:13px;font-weight:600;padding:6px 12px;border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-dark);border:1px solid #f3d6df;cursor:pointer;font-family:inherit;}
.chip:hover{background:var(--brand-soft);border-color:var(--brand);}
.chip.sm{padding:5px 10px;font-size:12.5px;}
.wb-empty-inline{color:var(--ink-3);font-size:14px;padding:20px 0;text-align:center;background:var(--bg-soft);border-radius:var(--r-md);}
.smart-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--bg-soft);border-radius:var(--r-md);margin-bottom:8px;cursor:pointer;}
.smart-row input{flex:0 0 auto;margin-top:3px;accent-color:var(--brand);}
.smart-row b{font-size:14px;color:var(--ink);font-weight:600;}
.smart-row .sub{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;}

/* 模板 */
.tpl-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow-card);}
.tpl-d{font-size:14px;color:var(--ink);font-weight:600;margin-bottom:10px;}
.tpl-btns{display:flex;gap:8px;}

/* 批量 */
.wb-batchbar{display:flex;align-items:center;gap:12px;background:var(--brand-soft);border:1px solid #f3d6df;border-radius:var(--r-md);padding:8px 14px;margin-bottom:12px;flex-wrap:wrap;}
.wb-batchbar label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--brand-dark);font-weight:600;}
.wb-batch-count{font-size:13px;color:var(--ink-2);}

/* ═══════════ 备婚页面 · V3 品牌化卡片设计 ═══════════ */

/* ---- 婚期 Hero 卡 ---- */
.wb-shell .wed-hero-card{background:linear-gradient(135deg,#FCE7EE,#FDF2F8);border-color:#F0DCE6!important;border-radius:14px;padding:24px 26px;display:flex;align-items:center;gap:28px;}
.wb-shell .wed-hero-left{flex:1;min-width:0;}
.wb-shell .wed-hero-label{display:block;font-size:14px;font-weight:500;color:#B8436F;margin-bottom:8px;}
.wb-shell .wed-date-row{display:flex;align-items:center;gap:14px;}
.wb-shell .wed-date-input{height:40px;padding:0 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:15px;font-family:inherit;color:#1f2937;background:#fff;outline:none;transition:border-color .2s,box-shadow .2s;}
.wb-shell .wed-date-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(214,90,120,.1);}
.wb-shell .wed-countdown{font-size:18px;font-weight:700;color:var(--brand);white-space:nowrap;padding:6px 14px;background:rgba(214,90,120,.08);border-radius:20px;}
.wb-shell .wed-hero-right{flex:0 0 auto;text-align:center;padding:16px 22px;background:rgba(255,255,255,.6);border-radius:12px;min-width:120px;}
.wb-shell .wed-stat-num{display:block;font-size:32px;font-weight:800;color:var(--brand);line-height:1.1;}
.wb-shell .wed-stat-lab{font-size:12px;color:#9ca3af;margin-top:4px;}

/* ---- 里程碑卡片网格 ---- */
.wb-shell .wed-ms-panel h4{font-size:15px;font-weight:600;color:#374151;margin:0;}
.wb-shell .ms-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px;}

/* 单张里程碑卡片 */
.wb-shell .ms-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--card);border:1.5px solid var(--line);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative;box-shadow:0 1px 4px rgba(0,0,0,.02);}
.wb-shell .ms-card:hover{border-color:var(--brand);box-shadow:0 4px 12px rgba(214,90,120,.08);transform:translateY(-1px);}
/* 图标圆圈 */
.wb-shell .ms-icon-circle{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#FCE7EE,#FFF1F5);display:flex;align-items:center;justify-content:center;font-size:22px;border:1.5px solid #F3D6DF;}
/* 内容区 */
.wb-shell .ms-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.wb-shell .ms-card-name{font-size:15px;font-weight:600;color:#1f2937;transition:all .2s;}
.wb-shell .ms-card-hint{font-size:12px;color:#9ca3af;font-weight:400;}
/* 右侧操作：勾选圆 + 删除 */
.wb-shell .ms-card-right{flex:0 0 auto;display:flex;align-items:center;gap:6px;}
.wb-shell .ms-check-circle{width:28px;height:28px;border-radius:50%;border:2.5px solid #d5d7dc;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;cursor:pointer;}
.wb-shell .ms-check-circle:hover{border-color:var(--brand);box-shadow:0 0 0 4px rgba(214,90,120,.1);}
.wb-shell .ms-check-ic{font-size:13px;font-weight:800;color:transparent;transition:color .15s;}
.wb-shell .ms-del-btn{width:24px;height:24px;border-radius:50%;border:1px solid transparent;background:none;color:#9ca3af;font-size:12px;cursor:pointer;font-family:inherit;opacity:0;transition:all .15s;}
.wb-shell .ms-card:hover .ms-del-btn{opacity:1;border-color:#e5e7eb;}
.wb-shell .ms-del-btn:hover{background:#fef2f2;border-color:#fecaca;color:#dc2626;}

/* 完成态 */
.wb-shell .ms-card.done{background:linear-gradient(135deg,#FFF1F5,#FCEEF2);border-color:#F8C5D3;box-shadow:none;transform:none;}
.wb-shell .ms-card.done:hover{border-color:#F0A8B8;box-shadow:0 2px 8px rgba(214,90,120,.06);}
.wb-shell .ms-card.done .ms-icon-circle{background:linear-gradient(135deg,#FCEEF2,#F8C5D3);border-color:#F0A8B8;}
.wb-shell .ms-card.done .ms-check-circle{background:linear-gradient(135deg,#D65A78,#B8436F);border-color:transparent;box-shadow:0 2px 8px rgba(214,90,120,.18);}
.wb-shell .ms-card.done .ms-check-ic{color:#fff;}
.wb-shell .ms-card.done .ms-card-name{text-decoration:line-through;text-decoration-color:#9ca3af;text-decoration-thickness:2px;color:#9ca3af!important;}
.wb-shell .ms-card.done .ms-card-hint{color:#d1d5db;}
.wb-shell .ms-done-tag{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#D65A78,#B8436F);padding:2px 8px;border-radius:10px;margin-left:6px;vertical-align:middle;}

/* 进度条 */
.wb-shell .ms-progress-bar-wrap{margin-top:18px;display:flex;align-items:center;gap:12px;}
.wb-shell .ms-progress-bar{flex:1;height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden;}
.wb-shell .ms-progress-fill{height:100%;background:linear-gradient(90deg,var(--brand),#B8436F);border-radius:4px;transition:width .4s ease;}
.wb-shell .ms-progress-txt{font-size:13px;font-weight:600;color:#6b7280;white-space:nowrap;}

/* 添加表单 */
.wb-shell .ms-add-form{margin:12px 0 14px;padding:16px;background:#fafafa;border-radius:12px;border:1.5px dashed var(--brand);}
.wb-shell .ms-add-inner{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.wb-shell .ms-add-inner input[type="text"]{flex:1;min-width:160px;height:38px;padding:0 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;color:#1f2937;background:#fff;}
.wb-shell .ms-add-inner input[type="text"]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(214,90,120,.1);}
.wb-shell .ms-add-inner input[type="number"]{width:110px;height:38px;padding:0 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;color:#1f2937;background:#fff;}

/* 电子请柬增强卡 */
.wb-shell .inv-entry-info{min-width:0;}
.wb-shell .inv-entry{border:1.5px solid #F3D6DF!important;background:linear-gradient(135deg,#FFF1F5,#FDF2F8)!important;border-radius:14px!important;padding:22px 26px!important;box-shadow:0 4px 16px rgba(214,90,120,.06)!important;position:relative;overflow:hidden;}
.wb-shell .inv-entry::before{content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;background:rgba(214,90,120,.06);}
.wb-shell .inv-entry h4{color:#B8436F!important;font-size:16px!important;font-weight:700!important;}
.wb-shell .inv-entry-sub{margin:4px 0 0;font-size:13px!important;color:#9ca3af!important;}
.wb-shell .inv-entry-tip{margin:12px 0 0!important;font-size:12px!important;color:#B89DA8!important;line-height:1.7!important;}
.wb-shell .inv-entry-row{display:flex;align-items:center;justify-content:space-between;gap:14px;}

/* ═══════════ 预算看板 · V3 品牌化卡片式 ═══════════ */
.wb-shell .bud-hero-row{display:flex;align-items:center;gap:28px;}
.wb-shell .bud-hero-left{flex:1;min-width:0;}
.wb-shell .bud-hero-right{flex:0 0 auto;}
.wb-shell .bud-hero-label{display:block;font-size:14px;font-weight:500;color:var(--ink-2);margin-bottom:8px;}
.wb-shell .bud-hero-panel{background:linear-gradient(135deg,#FCE7EE,#FDF2F8);border-color:#F0DCE6;border-radius:14px;padding:24px 26px;}
.wb-shell .bud-hero-input-wrap{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:6px 8px 6px 16px;transition:border-color .2s,box-shadow .2s;}
.wb-shell .bud-hero-input-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(214,90,120,.1);}
.wb-shell .bud-hero-cur{font-size:26px;font-weight:800;color:#B8436F;flex:0 0 auto;line-height:1;}
.wb-shell .bud-hero-amount{flex:1;border:none!important;background:none!important;padding:8px 4px!important;font-size:26px;font-weight:800;color:#1f2937;outline:none;font-family:inherit;min-width:0;}
.wb-shell .bud-hero-amount::placeholder{color:#9ca3af;font-weight:500;font-size:18px;}
.wb-shell .bud-hero-hint{margin-top:10px;font-size:13px;color:var(--ink-3);line-height:1.5;}

/* 快捷操作区 */
.wb-shell .bud-quick-btns{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.wb-shell .bud-qic{font-size:15px;margin-right:4px;}
.wb-shell .bud-auto-hint{font-size:13px;color:#4b5563;line-height:1.65;margin:4px 0 2px;}
.wb-shell .bud-auto-hint b{color:#1f2937;}
.wb-shell .bud-auto-note{font-size:12px;color:#9ca3af;line-height:1.6;margin:0;}

/* 环形图 */
.bud-ring{display:flex;align-items:center;gap:20px;}
.bud-ring-c{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.bud-ring-in{width:90px;height:90px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.bud-ring-pct{font-size:24px;font-weight:800;color:var(--scene-g1,#D65A78);}
.bud-ring-lab{font-size:11px;color:#9ca3af;}
.bud-ring-info{flex:1;display:flex;flex-direction:column;gap:6px;min-width:140px;}
.ri-row{display:flex;justify-content:space-between;font-size:14px;}
.ri-lab{color:#6b7280;font-weight:400;}
.ri-val{color:#1f2937;font-weight:600;font-variant-numeric:tabular-nums;}
.ri-val.exp{color:#dc2626;}
.ri-val.ok{color:var(--brand);}
.ri-warn{font-size:12px;color:#dc2626;background:#fef2f2;padding:6px 10px;border-radius:8px;font-weight:500;margin-top:2px;}

/* 分项预算 · 卡片式网格 */
.wb-shell .bud-cats-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:6px;}
.wb-shell .bud-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
/* 单张预算卡片 */
.wb-shell .bud-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden;}
.wb-shell .bud-card:hover{border-color:var(--brand);box-shadow:0 2px 12px rgba(214,90,120,.08);}
.wb-shell .bud-card.over{border-color:#fecaca;background:#fffbfb;}
.wb-shell .bud-card.over:hover{border-color:#fca5a5;box-shadow:0 2px 12px rgba(220,38,38,.08);}

/* 卡片头部：分类名 + 花费/预算比 */
.wb-shell .bc-head{display:flex;align-items:center;justify-content:space-between;}
.wb-shell .bc-name{font-size:15px;font-weight:600;color:#1f2937;}
.wb-shell .bc-ratio{font-size:13px;font-weight:700;padding:2px 8px;border-radius:6px;}
.wb-shell .bc-ratio.safe{background:var(--brand-soft);color:var(--brand);}
.wb-shell .bc-ratio.warn{background:#fffbeb;color:#d97706;}
.wb-shell .bc-ratio.danger{background:#fef2f2;color:#dc2626;}

/* 进度条（颜色按比例动态） */
.wb-shell .bc-track-wrap{margin:2px 0;}
.wb-shell .bc-track{height:10px;background:#f3f4f6;border-radius:5px;overflow:hidden;}
.wb-shell .bc-track i{display:block;height:100%;border-radius:5px;transition:width .3s ease;}
.wb-shell .bc-track i.safe{background:linear-gradient(90deg,#F8C5D3,#C24A6A);}
.wb-shell .bc-track i.warn{background:linear-gradient(90deg,#fcd34d,#f59e0b);}
.wb-shell .bc-track i.danger{background:linear-gradient(90deg,#fca5a5,#ef4444);}

/* 卡片数据行 */
.wb-shell .bc-stats{display:flex;justify-content:space-between;align-items:center;font-size:13px;}
.wb-shell .bc-spent{color:#4b5563;}
.wb-shell .bc-spend-val{font-weight:700;color:#1f2937;font-size:15px;font-variant-numeric:tabular-nums;}
.wb-shell .bc-limit-txt{color:#9ca3af;}
.wb-shell .bc-limit-val{font-weight:600;color:#374151;font-variant-numeric:tabular-nums;}

/* 卡片底部编辑 */
.wb-shell .bc-edit{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid #f3f4f6;}
.wb-shell .bc-edit label{font-size:12px;color:#9ca3af;white-space:nowrap;}
.wb-shell .bc-edit input{flex:1;min-width:0;height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;background:#fafafa;color:#1f2937;}
.wb-shell .bc-edit input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(214,90,120,.1);}

/* 设置页·分类管理品牌化 */
.set-cat-panel .cat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:4px;}
.cat-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-soft);border-radius:10px;border:1.5px solid transparent;transition:all .15s;}
.cat-item:hover{border-color:var(--brand);background:#FFF1F5;}
.cat-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#B8436F);flex:0 0 auto;box-shadow:0 0 0 3px rgba(214,90,120,.15);}
.cat-name{font-size:14px;font-weight:600;color:#1f2937;flex:1;}
.cat-btns{display:flex;gap:4px;opacity:0;transition:opacity .15s;}
.cat-item:hover .cat-btns{opacity:1;}

/* 礼金分布 */
.rel-bars{display:flex;flex-direction:column;gap:12px;}
.rel-bar .rb-top{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink-2);margin-bottom:4px;}
.rb-track{height:9px;background:var(--bg-soft);border-radius:var(--r-pill);overflow:hidden;}
.rb-track i{display:block;height:100%;background:linear-gradient(135deg,#D65A78,#B8436F);border-radius:var(--r-pill);}

/* 导出 / 报表 */
.wb-btns{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px;}
.wb-btns input[type=file]{font-size:13px;color:var(--ink-2);}
.wb-tip{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin:0 0 14px;}
.wb-msg{margin-top:12px;font-size:13px;color:var(--brand);font-weight:700;opacity:0;transition:opacity .25s;}
.wb-msg.show{opacity:1;}
.wb-danger{border-color:#F3C9C9;}

.wb-empty{margin-top:30px;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;}
.wb-empty::before{content:'';display:block;width:220px;height:165px;margin:0 auto 14px;background:url("_design/illustrations/v2-empty-budget.webp") center/contain no-repeat;}
.wb-empty p{margin-bottom:14px;}
.wb-empty .link{color:var(--brand);font-weight:700;background:none;border:0;cursor:pointer;font-family:inherit;font-size:inherit;}
/* 空状态插画（D4 · 执手记账设计资产，与官网真源同库） */
.empty-illu{display:block;width:200px;max-width:70%;height:auto;margin:0 auto 12px;border-radius:14px;}
.auth-illu{display:block;width:120px;height:auto;margin:0 auto 14px;border-radius:18px;box-shadow:0 10px 28px rgba(214,90,120,.16);}

/* 命令面板 ⌘K */
.wb-cmd{position:fixed;inset:0;background:rgba(20,22,28,.45);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;z-index:200;}
.wb-cmd-box{width:min(560px,92vw);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;}
.wb-cmd-box input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:16px;font-family:inherit;background:var(--card);color:var(--ink);}
.wb-cmd-box input:focus{outline:none;}
.wb-cmd-res{max-height:46vh;overflow:auto;padding:8px;}
.cmd-item{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:var(--r-md);cursor:pointer;font-size:14px;color:var(--ink);}
.cmd-item:hover{background:var(--brand-soft);}
.cmd-amt{font-weight:700;color:var(--ink-2);}
.cmd-empty{padding:18px;text-align:center;color:var(--ink-3);font-size:14px;}

/* 响应式：三档 */
@media(max-width:1024px){
  .wb-grid{grid-template-columns:repeat(2,1fr);}
  .wb-cols{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .wb-shell{flex-direction:column;}
  .wb-side{position:static;flex:none;width:100%;height:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-right:0;border-bottom:1px solid var(--line);}
  .wb-book{width:100%;}
  .wb-side-tt,.wb-side-foot{display:none;}
  .wb-nav{flex-direction:row;flex-wrap:wrap;flex:1;}
  .wb-nav-item{flex:0 0 auto;width:auto;padding:9px 12px;font-size:14px;}
  .wb-main{padding:22px 18px;}
  .wb-head h2{font-size:21px;}
  .ov-budget{flex-direction:column;align-items:stretch;}
}
@media(max-width:560px){
  .wb-grid{grid-template-columns:1fr 1fr;}
  .stat-card .v{font-size:22px;}
}

/* 深色主题 */
[data-theme="dark"]{
  --bg:#15171C; --bg-soft:#1E2128; --card:#1E2128; --ink:#EDEFF2; --ink-2:#A6ADB6; --ink-3:#6E7681;
  --line:#2C3038; --brand-soft:#2E2A28; --grad-soft:#23242e; --shadow-card:0 4px 16px rgba(0,0,0,.4); --shadow-md:0 8px 28px rgba(214,90,120,.18); --shadow-lg:0 12px 32px rgba(214,90,120,.28);
}
[data-theme="dark"] .wb-banner{border-color:#2C3038;}
[data-theme="dark"] .wb-nav-item:hover{background:#262A32;}
[data-theme="dark"] .li{background:#262A32;}
[data-theme="dark"] .wb-seg{background:#262A32;}
[data-theme="dark"] .seg.on{background:#1E2128;}
[data-theme="dark"] .smart-row,.wb-empty-inline{background:#262A32;}
[data-theme="dark"] .donut circle:first-child{stroke:#2C3038;}
[data-theme="dark"] .bb-track,.stg-track,.rb-track{background:#2C3038;}

/* 备婚旅程叙事 */
.journey{background:var(--bg-soft);padding:var(--sp-20) 0;}
.journey .sec-sub-c{margin-bottom:var(--sp-12);}
.journey-track{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-5);}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-7) var(--sp-5) var(--sp-7);text-align:center;transition:transform .2s ease,box-shadow .2s ease;}
.step:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);}
.step-no{position:absolute;top:-13px;left:50%;transform:translateX(-50%);width:26px;height:26px;line-height:26px;border-radius:var(--r-pill);background:linear-gradient(135deg,#D65A78,#B8436F);color:#fff;font-size:13px;font-weight:800;}
.step-ic{font-size:30px;margin:6px 0 8px;}
.step h3{font-size:17px;font-weight:800;margin-bottom:6px;}
.step p{font-size:13.5px;color:var(--ink-2);line-height:1.6;}
@media(max-width:980px){
  .journey-track{grid-template-columns:repeat(2,1fr);gap:var(--sp-6);}
  .step{max-width:340px;margin:0 auto;}
}
@media(max-width:560px){
  .journey-track{grid-template-columns:1fr;}
  .step{max-width:none;}

/* ===== 数据视图 / 一句话记账 / 预算看板 / 里程碑 / 设置 品牌化（2026-07-18 V2 优化） ===== */

/* ---- 预算看板（样式已移至 .wb-shell 作用域 V3 卡片式） ---- */

/* ---- 一句话记账：大文本域 + 预览区 ---- */
.smart-layout{align-items:stretch;}
.smart-textarea{width:100%;min-height:140px;padding:16px 18px;border:1.5px solid var(--line);border-radius:var(--r-lg);font-size:15px;font-family:var(--font);color:var(--ink);background:var(--card);resize:vertical;line-height:1.75;transition:border-color .18s,box-shadow .18s;}
.smart-textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.smart-preview-area{min-height:200px;display:flex;align-items:center;justify-content:center;}
.spa-empty{text-align:center;color:var(--ink-3);font-size:14px;line-height:1.8;padding:32px 20px;}
.spa-ok{color:var(--brand);font-weight:700;font-size:16px;}

/* ---- 数据视图：布局优化 ---- */
.data-top-row{align-items:stretch;}
.import-card .dc-head{background:linear-gradient(135deg,#FCE7EE,#FFF1F5)!important;color:#B8436F!important;border-bottom-color:#F8C5D3!important;}

/* ---- 里程碑（样式已移至 .wb-shell 作用域 V3 卡片版） ---- */
.ms-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.ms-head-row h4{margin:0;}
/* 旧 ms-item/ms-check-wrap 等已由 .wb-shell .ms-card 替代，保留此注释防断链 */

/* ---- 分类管理（样式已移至 .wb-shell 作用域） ---- */
.data-card{position:relative;overflow:hidden;}
.dc-head{font-size:15px;font-weight:700;color:var(--ink);margin:-22px -22px 16px;padding:14px 22px;background:var(--brand-soft);border-bottom:1px solid var(--line);}
.dc-head.pink{background:linear-gradient(135deg,var(--brand),#B8436F);color:#fff;}
.dc-head.green{background:var(--brand-soft);color:var(--brand);}
.dc-head.danger{background:#FFFBFB;color:var(--danger);border-bottom:1px solid #F3C9C9;}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:28px 16px;border:2px dashed #E0C8D2;border-radius:var(--r-lg);background:var(--brand-soft);cursor:pointer;transition:border-color .18s,background .18s;}
.dropzone:hover,.dropzone.over{border-color:var(--brand);background:#FDF0F4;}
.dropzone .dz-ic{font-size:26px;color:var(--brand);}
.dropzone .dz-tx{font-size:14px;font-weight:600;color:var(--ink);}
.dropzone .dz-sub{font-size:12px;color:var(--ink-3);}
.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:6px;}
.report-chip{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:1px solid #F3D6DF;background:#FFF5F7;border-radius:var(--r-lg);cursor:pointer;text-align:left;color:var(--brand-dark);transition:transform .15s,box-shadow .15s,background .15s;font-family:inherit;}
.report-chip:hover{transform:translateY(-2px);background:#FDEAF0;box-shadow:var(--shadow-md);}
.report-chip b{font-size:15px;font-weight:700;}
.report-chip span{font-size:12px;color:var(--brand);}
.report-chip.more{border-style:dashed;background:#FDF2F8;color:var(--brand);align-items:center;justify-content:center;}
.report-chip.more b{font-size:14px;}
.report-chip.more span{font-size:22px;line-height:1;}
.sub-h{font-size:12px;font-weight:400;color:var(--ink-3);margin-left:8px;}

.smart-card{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);margin-bottom:10px;cursor:pointer;border:1px solid var(--line);}
.smart-card input{flex:0 0 auto;margin-top:3px;accent-color:var(--brand);}
.smart-card .sc-body{flex:1;min-width:0;}
.smart-card .sc-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.smart-card .sc-top b{font-size:14px;font-weight:700;color:var(--ink);}
.smart-card .sc-tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap;}
.smart-card .sc-amt{font-size:18px;font-weight:800;margin-top:2px;}
.smart-card .sc-sub{font-size:12px;color:var(--ink-3);margin-top:2px;}
.smart-card.amber{background:#FFFBEB;border-color:#FCD34D;}
.smart-card.amber .sc-tag{background:#FEF3C7;color:#92400E;}
.smart-card.amber .sc-amt{color:#B45309;}
.smart-card.orange{background:#FFF7ED;border-color:#FDBA74;}
.smart-card.orange .sc-tag{background:#FFEDD5;color:#9A3412;}
.smart-card.orange .sc-amt{color:#C2410C;}

.bud-total-row{display:flex;align-items:center;gap:12px;}
.bud-total-input{position:relative;flex:1;}
.bud-total-input .cur{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink-2);font-weight:700;font-size:15px;}
.bud-total-input input{padding-left:30px;}
.bud-ring{display:flex;align-items:center;gap:22px;}
.bud-ring-c{width:128px;height:128px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.bud-ring-in{width:96px;height:96px;border-radius:50%;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.bud-ring-pct{font-size:26px;font-weight:800;color:var(--brand);}
.bud-ring-lab{font-size:12px;color:var(--ink-3);}
.bud-ring-info{flex:1;display:flex;flex-direction:column;gap:8px;}
.ri-row{display:flex;justify-content:space-between;font-size:14px;}
.ri-lab{color:var(--ink-2);}
.ri-val{font-weight:700;color:var(--ink);}
.ri-val.exp{color:var(--brand);}
.ri-val.ok{color:var(--brand);}
.ri-warn{font-size:12.5px;color:var(--danger);font-weight:600;background:#FDECEC;padding:6px 10px;border-radius:var(--r-sm);}
.bud-auto-hint{font-size:12px;color:var(--ink-2);line-height:1.6;margin:14px 0 6px;}
.bud-auto-note{font-size:12px;color:var(--ink-3);margin:0;}
.btn-ghost.full{width:100%;}
/* 旧 .bud-bar / .bb-* 已替换为 .wb-shell .bud-card / .bc-* 卡片式 */

/* 深色主题覆盖 */
[data-theme="dark"] .dc-head{background:var(--grad-soft);color:var(--ink);}
[data-theme="dark"] .dc-head.pink{background:linear-gradient(135deg,var(--brand),#B8436F);color:#fff;}
[data-theme="dark"] .dc-head.green{background:linear-gradient(135deg,var(--brand),#B8436F);color:#fff;}
[data-theme="dark"] .dc-head.danger{background:#2A1A1A;color:#F87171;}
[data-theme="dark"] .dropzone{background:#262A32;border-color:#2E2A28;}
[data-theme="dark"] .dropzone:hover,.dropzone.over{background:#2E2330;}
[data-theme="dark"] .report-chip{background:#2E2330;border-color:#2E2A28;color:var(--ink);}
[data-theme="dark"] .report-chip span{color:var(--brand);}
[data-theme="dark"] .report-chip:hover{background:#2E2A28;}
[data-theme="dark"] .bud-ring-in{background:#1E2128;}
/* 旧 .bud-bar 深色覆盖已替换为 .wb-shell .bud-card */
[data-theme="dark"] .smart-card.amber{background:#332B1A;border-color:#5A4A2A;}
[data-theme="dark"] .smart-card.orange{background:#332318;border-color:#5A3A2A;}
[data-theme="dark"] .dropzone .dz-tx{color:var(--ink);}
/* 旧 .bud-hero 深色覆盖已替换为 .wb-shell 作用域 */
[data-theme="dark"] .smart-textarea{background:#1E2128;color:var(--ink);}
[data-theme="dark"] .spa-empty{color:var(--ink-3);}
[data-theme="dark"] .import-card .dc-head{background:linear-gradient(135deg,#142618,#0D2014)!important;}
/* 里程碑深色：.ms-card 替代旧 .ms-item */
[data-theme="dark"] .wb-shell .ms-card.done{background:linear-gradient(135deg,#3A2531,#2E2A28);border-color:#5A2A33;}
[data-theme="dark"] .wb-shell .ms-check-circle{border-color:#4b5563;}
[data-theme="dark"] .wb-shell .ms-check-circle:hover{border-color:var(--brand);}
/* 旧 .cat-item 深色覆盖已替换为 .wb-shell 作用域 */
}

/* =========================================================
   深色主题全面补全（2026-07-18 · 截图审计修复）
   覆盖：工作台内部(.wb-shell) + 官网公共组件
   ========================================================= */

/* ── A. 工作台 .wb-shell 内部：白色背景 → 深色 ── */

[data-theme="dark"] .wb-shell .inv-entry{background:linear-gradient(135deg,#23242e,#1E2128)!important;border-color:#2E2A28!important;}
[data-theme="dark"] .wb-shell .inv-entry::before{background:rgba(214,90,120,.08);}
[data-theme="dark"] .wb-shell .bud-hero-panel{background:linear-gradient(135deg,#23242e,#1E2128);border-color:#2E2A28;}
[data-theme="dark"] .wb-shell .dh-stat{background:linear-gradient(135deg,#23242e,#1E2128);border-color:#2E2A28;}
[data-theme="dark"] .wb-shell .dh-ic{background:#262A32;}
[data-theme="dark"] .wb-shell .bud-card{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .wb-shell .bud-card.over{background:#2A1A1A;border-color:#5A2A2A;}
[data-theme="dark"] .wb-shell .bud-hero-input-wrap{background:#1E2128;border-color:var(--line);}
[data-theme="dark"] .wb-shell .ms-icon-circle{background:linear-gradient(135deg,#2E2A28,#23242e);border-color:#2E2A28;}
[data-theme="dark"] .wb-shell .ms-card.done .ms-icon-circle{background:linear-gradient(135deg,#3A2531,#2E2A28);border-color:#5A2A33;}
[data-theme="dark"] .bud-ring-in{background:#1E2128;}
[data-theme="dark"] .ri-warn{background:#2A1A1A;color:#FCA5A5;border:1px solid #5A2A2A;}
[data-theme="dark"] .danger-zone-card{background:linear-gradient(135deg,#2A1A1A,#241A1A);border-color:#5A2A2A;}
[data-theme="dark"] .danger-zone-card .dz-warn-text h4{color:#FCA5A5;}
[data-theme="dark"] .danger-zone-card .dz-warn-desc{color:#D4A0A0;}
[data-theme="dark"] .danger-zone-card .dz-warn-desc strong{color:#F87171;}
[data-theme="dark"] .danger-zone-card .dz-confirm-label{color:#D4A0A0;}
[data-theme="dark"] .danger-zone-card .dz-action-row{border-color:#5A2A2A;}
[data-theme="dark"] .wb-shell .dropzone{background:linear-gradient(135deg,#1E2128,#1E2128);border-color:#2E2A28;}
[data-theme="dark"] .wb-shell .ms-add-form{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .wb-shell .ms-progress-bar{background:#2C3038;}
[data-theme="dark"] .wb-shell .bc-track{background:#2C3038;}
[data-theme="dark"] .wb-shell .bc-edit{border-top-color:var(--line);}

/* ── B. 工作台输入框：白底+深色字 → 深底+浅字 ── */

[data-theme="dark"] .wb-shell .wed-date-input{background:#1E2128;color:var(--ink);border-color:var(--line);}
[data-theme="dark"] .wb-shell .ms-add-inner input[type="text"],
[data-theme="dark"] .wb-shell .ms-add-inner input[type="number"]{background:#1E2128;color:var(--ink);border-color:var(--line);}
[data-theme="dark"] .wb-shell .bc-edit input{background:#262A32;color:var(--ink);border-color:var(--line);}

/* ── C. 工作台文字：深色硬编码(#1f2937等)→CSS变量 ── */

[data-theme="dark"] .wb-shell .ms-card-name{color:var(--ink);}
[data-theme="dark"] .wb-shell .bc-name{color:var(--ink);}
[data-theme="dark"] .wb-shell .bud-hero-amount{color:var(--ink);}
[data-theme="dark"] .ri-val{color:var(--ink);}
[data-theme="dark"] .wb-shell .bud-auto-hint b{color:var(--ink);}
[data-theme="dark"] .wb-shell .bc-spend-val{color:var(--ink);}
[data-theme="dark"] .wb-shell .bc-limit-val{color:var(--ink-2);}
[data-theme="dark"] .cat-name{color:var(--ink);}
[data-theme="dark"] .wb-shell .wed-ms-panel h4{color:var(--ink);}
[data-theme="dark"] .wb-shell .bc-spent{color:var(--ink-2);}
[data-theme="dark"] .wb-shell .bc-limit-txt{color:var(--ink-3);}
[data-theme="dark"] .wb-shell .ms-progress-txt{color:var(--ink-2);}
[data-theme="dark"] .wb-shell .ms-card-hint{color:var(--ink-3);}
[data-theme="dark"] .wb-shell .ms-del-btn{color:var(--ink-3);}
[data-theme="dark"] .ri-lab{color:var(--ink-2);}

/* ── D. 进度条/边框/分隔线 ── */

[data-theme="dark"] .wb-shell .bb-track,
[data-theme="dark"] .stg-track,
[data-theme="dark"] .rb-track{background:#2C3038;}

/* ── E. hover 状态深色适配 ── */

[data-theme="dark"] .wb-shell .ms-del-btn:hover{background:#2A1A1A;border-color:#5A2A2A;color:#F87171;}
[data-theme="dark"] .li-del:hover{background:#2A1A1A;}
[data-theme="dark"] .btn-danger:hover{background:#2A1A1A;}
[data-theme="dark"] .cat-item:hover{background:#23242e;}
[data-theme="dark"] .wb-shell .bud-hero-panel .btn-primary:hover{filter:brightness(1.15);}

/* ── F. 官网公共组件深色模式（首页/登录/功能页共用） ── */

/* 首页 journey 步骤卡 */
[data-theme="dark"] .step{background:var(--card);border-color:var(--line);}
/* 登录卡片 */
[data-theme="dark"] .auth-card{background:var(--card);border-color:var(--line);box-shadow:var(--shadow-md);}
/* 按钮 */
[data-theme="dark"] .btn-ghost{background:#262A32;color:var(--ink-2);border-color:var(--line);}
[data-theme="dark"] .btn-light{background:#262A32;color:var(--ink);}
[data-theme="dark"] .btn-light:hover{background:#2E333C;}
/* 下拉菜单 */
[data-theme="dark"] .drop-menu{background:var(--card);border-color:var(--line);box-shadow:var(--shadow-lg);}
/* 首页模块背景 */
[data-theme="dark"] .trust,.core,.webapp,.pricing{background:var(--bg);}
[data-theme="dark"] .mini-card{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .brand-quote{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .faq-list details{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .screen{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .w-card{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .app-win{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .phone{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .seg2 span.on{background:var(--brand-soft);color:var(--brand);}
/* 功能页升级模板 */
[data-theme="dark"] .feat-badge{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .feat-rel-card{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .feat-steps{background:var(--bg-soft);}
/* 首页 VC 卡片 hover */
[data-theme="dark"] .vc-card:hover{border-color:var(--brand);}
/* report-chip (非 wb-shell 上下文) */
[data-theme="dark"] .report-chip{background:var(--card);border-color:var(--line);color:var(--ink);}
[data-theme="dark"] .report-chip:hover{background:#262A32;transform:translateY(-2px);box-shadow:var(--shadow-md);}
[data-theme="dark"] .report-chip.more{background:var(--bg-soft);border-style:dashed;}
/* dc-head 危险变体 */
[data-theme="dark"] .dc-head.danger{background:#2A1A1A;color:#F87171;border-bottom-color:#5A2A2A;}
/* smart-card 基础（无颜色变体时） */
[data-theme="dark"] .smart-card{background:var(--card);border-color:var(--line);}
/* dropzone 全局兜底 */
[data-theme="dark"] .dropzone .dz-sub{color:var(--ink-3);}

/* =========================================================
   登录页（V3：学云犀架构）
   极简顶栏 + 左侧 App 展示面 + 右侧纯表单 + 极简底栏
   ========================================================= */

/* ---- Hero 主区（套全站 header，高度 72px）---- */
.auth-hero{
  min-height:calc(100vh - 72px);
  background:var(--bg-soft);
  display:flex;
  align-items:center;
  padding:var(--sp-12) 0;
}
.auth-grid{
  display:grid;
  grid-template-columns:1.05fr 420px;
  gap:var(--sp-16);
  align-items:center;
}

/* ---- 左侧 App 展示面 ---- */
.auth-brand{position:relative;}
.auth-brand-inner{max-width:480px;}
.auth-phone{
  width:206px;
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--shadow-float);
  border:7px solid #1b1b1f;
  margin-bottom:var(--sp-7);
}
.auth-phone img{display:block;width:100%;height:auto;}
.auth-app-name{
  font-size:26px;
  font-weight:800;
  letter-spacing:-.4px;
  color:var(--ink);
  margin-bottom:var(--sp-1);
}
.auth-app-sub{
  font-size:15px;
  color:var(--ink-3);
  margin-bottom:var(--sp-6);
}
/* 特性标签（紧凑 badge，✓ 用品牌色圆形标记） */
.auth-feats{
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-3) var(--sp-5);
  margin-bottom:var(--sp-7);
}
.auth-feats li{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:14.5px;
  color:var(--ink-2);
  font-weight:600;
}
.auth-feats li::before{
  content:"";
  width:18px;height:18px;flex-shrink:0;
  border-radius:50%;
  background:var(--grad-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D65A78' stroke-width='3'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:11px;
}
.auth-free-note{
  font-size:12.5px;
  color:var(--ink-3);
  margin-top:var(--sp-4);
}

/* ---- 右侧登录卡片 ---- */
.auth-card-wrap{
  justify-self:end;
  width:100%;
}
.auth-card{
  background:#fff;
  border-radius:var(--r-xl);
  box-shadow:var(--shadow-float);
  padding:var(--sp-10) var(--sp-8);
  width:100%;
  max-width:400px;
  margin:0 auto;
}
.auth-card-head{
  margin-bottom:var(--sp-6);
}
.auth-card-head h2{
  font-size:24px;
  font-weight:800;
  color:var(--ink);
  margin-bottom:var(--sp-1);
}
.auth-sub{
  font-size:14px;
  color:var(--ink-3);
}

/* 微信登录主按钮（唯一主操作，官方绿实心） */
.btn-auth-wechat{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--sp-3);
  width:100%;
  padding:15px 0;
  border:none;
  border-radius:var(--r-md);
  background:var(--brand);
  color:#fff;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  transition:.2s;
  box-shadow:0 6px 16px rgba(7,193,96,.28);
}
.btn-auth-wechat:hover{
  background:#06AD56;
  box-shadow:0 8px 20px rgba(7,193,96,.34);
}
.btn-auth-wechat svg{width:22px;height:22px;}

/* 分隔线（按钮与承诺之间的呼吸空间，学云犀 A6） */
.auth-divider{
  height:1px;
  background:var(--line);
  margin:var(--sp-6) 0;
}

/* 隐私承诺（缩小） */
.auth-privacy{
  display:flex;
  align-items:flex-start;
  gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-4);
  background:var(--grad-soft);
  border-radius:var(--r-md);
  font-size:12px;
  color:var(--ink-2);
  line-height:1.5;
  margin-bottom:var(--sp-4);
}
.auth-privacy svg{
  flex-shrink:0;
  color:var(--brand);
  margin-top:1px;
}
.auth-privacy b{color:var(--ink);}

/* 协议行 */
.auth-agree{
  font-size:12.5px;
  color:var(--ink-3);
  line-height:1.6;
  text-align:center;
}
.auth-agree a{
  color:var(--brand);
  font-weight:600;
  text-decoration:none;
}
.auth-agree a:hover{text-decoration:underline;}
.auth-soon{
  text-align:center;
  font-size:12px;
  color:var(--ink-3);
  margin-top:var(--sp-5);
}

/* 微信扫码登录提示（按钮下方小字） */
.auth-scan-hint{
  text-align:center;
  font-size:12px;
  color:var(--ink-3);
  margin-top:var(--sp-3);
}

/* 扫码登录弹窗（暂未激活；二维码容器待 W1 注入 OAuth iframe） */
.auth-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:var(--sp-5);
}
.auth-modal.open{display:flex;}
.auth-modal-mask{
  position:absolute;
  inset:0;
  background:rgba(20,16,24,.5);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.auth-modal-card{
  position:relative;
  width:100%;
  max-width:360px;
  background:#fff;
  border-radius:var(--r-xl);
  box-shadow:var(--shadow-float);
  padding:var(--sp-8) var(--sp-6) var(--sp-6);
  text-align:center;
}
.auth-modal-close{
  position:absolute;
  top:10px;right:12px;
  width:32px;height:32px;
  border:none;background:transparent;
  font-size:22px;line-height:1;
  color:var(--ink-3);
  cursor:pointer;
  border-radius:50%;
}
.auth-modal-close:hover{background:var(--bg-soft);}
.auth-modal-head h3{
  font-size:19px;font-weight:800;color:var(--ink);margin-bottom:var(--sp-2);
}
.auth-modal-head p{
  font-size:13px;color:var(--ink-3);line-height:1.5;margin-bottom:var(--sp-5);
}
.auth-qr-box{
  position:relative;
  width:200px;height:200px;
  margin:0 auto var(--sp-5);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  overflow:hidden;
  background:#fff;
}
.auth-qr-frame{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}
.auth-qr-placeholder{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:#fff;color:var(--ink-3);font-size:13px;
}
.auth-qr-placeholder svg{width:40px;height:40px;opacity:.45;}
.auth-modal-note{
  font-size:11.5px;line-height:1.6;color:var(--ink-3);
  background:var(--grad-soft);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4);text-align:left;
}
.auth-modal-note strong{color:var(--ink-2);}

/* ---- 响应式：≤980px 两栏变单栏 ---- */
@media(max-width:980px){
  .auth-grid{
    grid-template-columns:1fr;
    gap:var(--sp-10);
    justify-items:center;
  }
  .auth-brand{text-align:center;}
  .auth-brand-inner{max-width:none;}
  .auth-phone{margin-left:auto;margin-right:auto;}
  .auth-feats{max-width:360px;margin-left:auto;margin-right:auto;}
  .auth-card-wrap{justify-self:auto;max-width:400px;}
  .auth-hero{min-height:auto;padding:var(--sp-8) 0 var(--sp-10);}
}
/* ≤560px 卡片全宽 + 单列特性 */
@media(max-width:560px){
  .auth-hero{padding:var(--sp-6) 0 var(--sp-8);}
  .auth-phone{width:172px;}
  .auth-feats{grid-template-columns:1fr;max-width:260px;}
  .auth-card{border-radius:var(--r-lg);padding:var(--sp-7) var(--sp-5);}
}

/* =========================================================
   功能详情页统一升级模板（F1-F7 / pricing / about）
   新增区块：价值条 · 展示面 · 步骤 · 相关功能+CTA
   ========================================================= */

/* ---- 价值条（3徽章）---- */
.feat-value{padding:var(--sp-10) 0;background:var(--bg-soft);}
.feat-value .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);align-items:start;}
.feat-badge{background:#fff;border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-4);border:0.5px solid var(--line);}
.feat-badge-icon{font-size:28px;margin-bottom:var(--sp-2);}
.feat-badge h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.feat-badge p{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0;}

/* ---- 展示面（保留原mock-grid + 外框增强）---- */
.feat-showcase{padding:var(--sp-8) 0;}
.feat-showcase-inner{max-width:720px;margin:0 auto;}

/* ---- 使用步骤 ---- */
.feat-steps{padding:var(--sp-10) 0;background:var(--card);}
.feat-steps h2{font-size:24px;font-weight:800;text-align:center;color:var(--ink);margin-bottom:var(--sp-7);}
.feat-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);max-width:640px;margin:0 auto;}
.feat-step{text-align:center;position:relative;}
.feat-step-num{width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;font-size:17px;font-weight:700;line-height:40px;text-align:center;margin:0 auto var(--sp-3);}
.feat-step h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.feat-step p{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0;}

/* ---- 法律 / 协议页（privacy / terms）---- */
.legal-content{padding:var(--sp-9) 0 var(--sp-12);}
.prose{max-width:768px;margin:0 auto;color:var(--ink-2);font-size:15px;line-height:1.85;}
.prose h2{font-size:20px;font-weight:800;color:var(--ink);margin:var(--sp-8) 0 var(--sp-3);padding-top:var(--sp-5);border-top:1px solid var(--line);}
.prose h2:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.prose p{margin:0 0 var(--sp-3);}
.prose ul{margin:0 0 var(--sp-4);padding-left:1.25em;list-style:disc;}
.prose li{margin-bottom:7px;}
.prose strong{color:var(--ink);font-weight:700;}
.legal-updated{font-size:13px;color:var(--ink-3);margin-bottom:var(--sp-2);}

/* ---- 相关功能 + CTA ---- */
.feat-related{padding:var(--sp-9) 0;}
.feat-related h2{font-size:22px;font-weight:800;color:var(--ink);margin-bottom:var(--sp-5);text-align:center;}
.feat-related-links{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center;margin-bottom:var(--sp-6);}
.feat-rel-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);text-decoration:none;color:var(--ink);transition:.18s;min-width:160px;}
.feat-rel-card:hover{border-color:var(--brand-light);box-shadow:0 0 0 3px var(--brand-soft);}
.feat-rel-card .rel-ic{font-size:22px;}
.feat-rel-card .rel-t{font-size:14px;font-weight:600;}
.feat-rel-card .rel-d{font-size:12px;color:var(--ink-3);}
.feat-cta{text-align:center;padding-top:var(--sp-4);}
.feat-cta .btn-primary{font-size:16px;letter-spacing:.08em;padding:15px 36px;}

/* ===== 皮肤卖点区块（W3 2026-07-27 · 全量推进·13套·全部免费 [待上线]） ===== */
.skin-promo{padding:var(--sp-10) 0;background:var(--bg-soft);}
.skin-promo .wrap{max-width:980px;}
.skin-head{text-align:center;margin-bottom:var(--sp-7);}
.skin-tag{display:inline-block;font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-soft);border:1px solid var(--brand-light);border-radius:var(--r-pill);padding:4px 14px;margin-bottom:var(--sp-4);letter-spacing:.04em;}
.skin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);}
.skin-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);text-align:center;transition:.2s;}
.skin-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--brand-light);}
.skin-swatch{width:100%;height:44px;border-radius:var(--r-sm);margin-bottom:var(--sp-3);}
.skin-name{font-size:14px;font-weight:700;color:var(--ink);}
.skin-type{font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.skin-note{margin-top:var(--sp-6);text-align:center;font-size:13px;color:var(--ink-2);}
@media(max-width:980px){.skin-promo .wrap{max-width:480px;}}
@media(max-width:760px){.skin-grid{grid-template-columns:repeat(2,1fr);}}
[data-theme="dark"] .skin-card{background:var(--card);border-color:var(--line);}
[data-theme="dark"] .skin-name{color:var(--ink);}

@media(max-width:980px){
  .feat-value .wrap{grid-template-columns:1fr 1fr;max-width:480px;margin:0 auto;}
  .feat-badge:last-child{grid-column:1/-1;max-width:360px;justify-self:center;}
  .feat-steps-grid{grid-template-columns:1fr 1fr;gap:var(--sp-4);max-width:400px;}
  .feat-step:last-child{grid-column:1/-1;max-width:300px;justify-self:center;}
}
@media(max-width:560px){
  .feat-value .wrap{grid-template-columns:1fr;}
  .feat-badge:last-child{grid-column:auto;}
  .feat-steps-grid{grid-template-columns:1fr;}
  .feat-step:last-child{grid-column:auto;}
  .feat-related-links{flex-direction:column;align-items:center;}
}

/* =========================================================
   官网首页轻量化改版（2026-07-18 · 信息逻辑/品牌感知/转化路径）
   ========================================================= */

/* 导航右侧操作区 + 深色切换 */
.nav-right{display:flex;align-items:center;gap:var(--sp-4);}
.theme-toggle{width:40px;height:40px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink-2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.theme-toggle:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-1px);}
/* 滚动常驻悬浮态（毛玻璃 + 底部细阴影） */
.site-header.scrolled{box-shadow:0 6px 24px rgba(31,35,41,.08);background:rgba(255,255,255,.94);}
[data-theme="dark"] .site-header{background:rgba(21,23,28,.86);border-bottom-color:var(--line);}
[data-theme="dark"] .site-header.scrolled{background:rgba(21,23,28,.94);box-shadow:0 6px 24px rgba(0,0,0,.4);}
[data-theme="dark"] .theme-toggle{background:var(--card);border-color:var(--line);color:var(--ink-2);}
/* 锚点跳转不被吸顶导航遮挡 */
section[id]{scroll-margin-top:84px;}

/* Hero 信任标签 */
.hero-tags{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin:var(--sp-6) 0 var(--sp-8);}
.hero-tags span{font-size:13px;font-weight:600;color:var(--brand-dark);background:var(--brand-soft);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);}

/* 核心价值速览 3 卡 */
.value-cards{background:var(--bg);padding:var(--sp-16) 0;}
.vc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);}
.vc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-8);box-shadow:var(--shadow-sm);transition:.2s;}
.vc-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#f3d6df;}
.vc-ic{width:48px;height:48px;border-radius:var(--r-md);background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:var(--sp-4);}
.vc-card h3{font-size:20px;font-weight:800;margin-bottom:var(--sp-2);}
.vc-card p{font-size:14px;color:var(--ink-2);line-height:1.7;}

/* 痛点共鸣（左右分栏：烦恼 vs 解法） */
.pain{background:var(--bg-soft);}
.pain-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);margin-top:var(--sp-12);max-width:960px;margin-left:auto;margin-right:auto;align-items:start;}
.pain-col{border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-7);border:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,0.04);}
.pain-col.pain{background:#FFF6F6;border-color:#F6DCDC;}
.pain-col.sol{background:var(--brand-soft);border-color:#f3d6df;}
.pain-cap{font-size:17px;font-weight:700;margin-bottom:var(--sp-5);color:var(--ink);}
.pain-col.pain .pain-cap{color:#C2453F;}
.pain-col.sol .pain-cap{color:var(--brand-dark);}
.pain-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4);}
.pain-list li{font-size:14.5px;color:var(--ink-2);line-height:1.7;position:relative;padding-left:var(--sp-6);}
.pain-list li::before{position:absolute;left:0;top:2px;font-size:12px;font-weight:800;}
.pain-col.pain .pain-list li::before{content:"•";color:#E2766E;}
.pain-col.sol .pain-list li::before{content:"✓";color:var(--brand);}

/* 三步上手（横向步骤条） */
.steps-bar{background:var(--bg);}
.sb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-8);margin-top:var(--sp-12);position:relative;}
.sb-grid::before{content:"";position:absolute;top:28px;left:16%;right:16%;height:2px;background:linear-gradient(90deg,var(--brand),var(--brand-dark));opacity:.35;z-index:0;}
.sb-item{position:relative;z-index:1;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-9) var(--sp-6);box-shadow:var(--shadow-sm);transition:.2s;}
.sb-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.sb-num{width:40px;height:40px;border-radius:50%;background:var(--grad);color:#fff;font-size:20px;font-weight:800;line-height:40px;margin:0 auto var(--sp-5);box-shadow:var(--shadow-md);}
.sb-ic{font-size:36px;width:72px;height:72px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#FFF0F5,#FFE4EC);border-radius:18px;margin-bottom:var(--sp-4);line-height:1;}
.sb-item h3{font-size:18px;font-weight:800;margin-bottom:var(--sp-2);}
.sb-item p{font-size:14px;color:var(--ink-2);line-height:1.7;}

/* 网页版要点列表 */
.webapp-points{list-style:none;margin:var(--sp-6) 0 var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-3);}
.webapp-points li{position:relative;padding-left:var(--sp-7);font-size:15px;color:var(--ink);line-height:1.6;font-weight:600;}
.webapp-points li::before{content:"✓";position:absolute;left:0;top:0;color:var(--brand);font-weight:800;}
.webapp-note{font-size:13px;color:var(--ink-3);margin-top:var(--sp-5);line-height:1.6;}

/* 品牌理念（居中精简） */
.brand-philosophy{background:var(--bg-soft);}
.brand-philosophy h2{font-size:34px;font-weight:800;letter-spacing:-.5px;margin-bottom:var(--sp-6);}
.brand-philosophy p{font-size:17px;color:var(--ink-2);line-height:1.9;margin-bottom:var(--sp-4);}
.brand-philosophy blockquote{margin-top:var(--sp-8);font-size:22px;font-weight:700;line-height:1.7;color:var(--brand-dark);padding:var(--sp-6) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* 终屏 CTA 辅助小字 */
.cta-sub{font-size:14px;opacity:.9;margin-top:var(--sp-5) !important;}

/* 回到顶部 */
.to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;text-decoration:none;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;z-index:120;}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{transform:translateY(-2px);}
[data-theme="dark"] .to-top{box-shadow:0 8px 24px rgba(0,0,0,.5);}

/* 首页改版响应式 */
@media(max-width:980px){
  .vc-grid{grid-template-columns:1fr;}
  .pain-grid{grid-template-columns:1fr;gap:var(--sp-5);}
  .sb-grid{grid-template-columns:1fr;gap:var(--sp-5);}
  .sb-grid::before{display:none;}
  .brand-philosophy h2{font-size:28px;}
}
@media(max-width:560px){
  .hero-tags{justify-content:center;}
  .value-cards{padding:var(--sp-12) 0;}
  .vc-card{padding:var(--sp-6);}
  .brand-philosophy blockquote{font-size:19px;}
}

/* ─── 云同步区域样式 ─── */
.sync-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3);}
.sync-title{font-weight:700;font-size:14px;color:var(--brand,#D65A78);}
.sync-last{font-size:11px;color:#999;}
.sync-status{text-align:center;padding:6px 0;margin-bottom:var(--sp-2);font-size:12px;}
.sync-spin{color:var(--accent,#D65A78);animation:pulse 1s infinite;}
.sync-err{color:#dc2626;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.sync-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:var(--sp-2);}
.sync-row label{font-size:12px;color:#666;white-space:nowrap;}
.sync-row input[type=password]{padding:4px 8px;border:1px solid #ddd;border-radius:var(--r-sm,6px);font-size:13px;outline:none;}
.sync-row input[type=password]:focus{border-color:var(--brand,#D65A78);box-shadow:0 0 0 2px rgba(214,90,120,.15);}
.btn-sm{padding:4px 12px;font-size:12px;border:1px solid #ddd;background:#fff;border-radius:var(--r-sm,6px);cursor:pointer;}
.btn-sm:hover{background:#f9f9f9;}
.sync-hint{font-size:11px;color:#999;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* #266 W3：会员硬闸浮层（非会员云同步引导） */
.sync-gate{border:1px dashed var(--brand,#D65A78);background:rgba(214,90,120,.05);border-radius:12px;padding:16px;text-align:center;margin:4px 0 10px;}
.sync-gate .sg-title{font-weight:700;font-size:14px;color:var(--brand,#D65A78);margin-bottom:8px;}
.sync-gate .sg-desc{font-size:12px;color:#666;line-height:1.6;margin-bottom:12px;}
.sync-gate .sg-qr{width:128px;height:128px;border-radius:8px;background:#fff;padding:6px;box-sizing:border-box;}
.sync-gate .sg-link{display:inline-block;margin-top:10px;font-size:13px;color:var(--brand,#D65A78);font-weight:600;text-decoration:none;}

/* 用户画像卡片（头像+昵称） */
.sync-user-profile{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-3) 0;padding:var(--sp-3);background:var(--brand-soft);border-radius:var(--r-md);}
.sync-user-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--brand);}
.sync-user-avatar.placeholder{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--brand);font-size:20px;}
.sync-user-name{font-weight:700;color:var(--ink);font-size:15px;}

/* 会员态徽章 */
.sync-member-badge{display:inline-flex;align-items:center;gap:6px;margin:var(--sp-2) 0;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;}
.sync-member-badge.vip{background:var(--brand-soft);color:var(--brand);}
.sync-member-badge.free{background:#f5f5f5;color:var(--ink-2);}
.sync-member-badge.free a{color:var(--brand);text-decoration:underline;}
.sync-member-badge.checking{background:#fffbe6;color:#d4a017;}
.sync-member-sub{margin-left:4px;font-weight:400;opacity:.9;}

/* ─── 登录页：网页同步码入口（P0） ─── */
/* 带文字的分隔线（"或"） */
.auth-divider.has-text{display:flex;align-items:center;gap:12px;margin:var(--sp-6) 0;}
.auth-divider.has-text::before,
.auth-divider.has-text::after{content:"";flex:1;height:1px;background:var(--line);}
.auth-divider.has-text span{font-size:12px;color:var(--ink-3);white-space:nowrap;}

/* 同步码区块 */
.auth-sync{margin-top:var(--sp-6);}
.auth-sync-tip{font-size:13px;color:var(--ink-2);line-height:1.6;margin-bottom:var(--sp-3);text-align:center;}
.auth-sync-row{display:flex;gap:var(--sp-2);}
.auth-sync-input{
  flex:1;min-width:0;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  font-size:13.5px;font-family:inherit;
  color:var(--ink);background:var(--bg);
  outline:none;transition:.15s;
}
.auth-sync-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.auth-sync-input::placeholder{color:var(--ink-3);}
.btn-sync{
  padding:0 18px;border:none;border-radius:var(--r-md);
  background:var(--grad);color:#fff;
  font-size:14px;font-weight:700;font-family:inherit;
  cursor:pointer;white-space:nowrap;transition:.2s;
}
.btn-sync:hover{filter:brightness(1.06);transform:translateY(-1px);}
.auth-sync-err{font-size:12.5px;color:#dc2626;min-height:18px;margin:var(--sp-2) 0 0;text-align:center;}
.auth-sync-help{font-size:11.5px;color:var(--ink-3);text-align:center;margin-top:var(--sp-2);line-height:1.5;}

/* ─── 工作台侧栏：云同步状态（P2 文案降级） ─── */
.ls-wait{color:#d9a441;}
[data-theme="dark"] .ls-wait{color:#E0B25A;}

/* ─── W3 OPT-06 落地页转化 · 社会证明 / 场景分组 · OPT-03 同步叙事 ─── */
/* 社会证明（真实口径，无造假数据） */
.social-proof{background:var(--grad-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--sp-7) 0;}
.sp-inner{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);flex-wrap:wrap;text-align:center;}
.sp-ic{font-size:26px;line-height:1;flex:0 0 auto;}
.sp-tx{margin:0;font-size:17px;font-weight:700;color:var(--brand-dark);line-height:1.6;}
@media(max-width:560px){.sp-tx{font-size:15px;}}

/* 功能按场景分组 */
.scn-group{margin-top:var(--sp-12);}
.scn-head{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-7);}
.scn-emoji{font-size:34px;line-height:1;flex:0 0 auto;width:60px;height:60px;border-radius:18px;background:var(--grad-soft);display:flex;align-items:center;justify-content:center;}
.scn-head h3{font-size:24px;font-weight:800;letter-spacing:-.3px;}
.scn-tag{margin:4px 0 0;font-size:15px;color:var(--ink-2);font-weight:600;}
.feat-card.feat-static{cursor:default;}
.feat-card.feat-static:hover{transform:none;box-shadow:var(--shadow-sm);border-color:var(--line);}
@media(max-width:980px){.scn-head{margin-bottom:var(--sp-5);}}
@media(max-width:560px){.scn-emoji{width:48px;height:48px;font-size:28px;}.scn-head h3{font-size:20px;}}

/* OPT-03 同步价值叙事：三大信任卖点 */
.sync-value{background:var(--bg-soft);padding:var(--sp-16) 0;}
.sv-head{text-align:center;margin-bottom:var(--sp-12);}
.sv-head .badge{margin-bottom:var(--sp-5);}
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);}
.sv-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow-sm);transition:.2s;}
.sv-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#f3d6df;}
.sv-ic{width:54px;height:54px;border-radius:16px;background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:var(--sp-4);}
.sv-card h3{font-size:20px;font-weight:800;margin-bottom:var(--sp-2);}
.sv-card p{font-size:14px;color:var(--ink-2);line-height:1.65;}
.sv-note{text-align:center;margin-top:var(--sp-8);font-size:13.5px;color:var(--ink-3);line-height:1.6;}
@media(max-width:980px){.sv-grid{grid-template-columns:1fr;}.sync-value{padding:var(--sp-12) 0;}}

/* ============================================================
   D6 微动效首批 · W3(zheshou-web-design) · 2026-07-25
   仅小范围、安全动效；不影响布局/响应式；尊重 reduced-motion
   ============================================================ */
/* 页面进入淡入：作用于 body，纯 opacity 不位移，避免影响 fixed 头部 */
@keyframes w3-page-fade { from { opacity: 0; } to { opacity: 1; } }
body { animation: w3-page-fade .35s ease both; }
/* 元素级淡入工具类（供后续页面/区块按需使用） */
.fade-in { animation: w3-page-fade .4s ease both; }
/* 按钮 hover 过渡增强：在既有 transition 基础上加轻微上浮 */
.btn, .btn-primary, .btn-ghost, .btn-light, .btn-auth-wechat, .btn-sync,
button, a.btn {
  transition: transform .15s ease, box-shadow .15s ease,
              background-color .15s ease, opacity .15s ease;
}
.btn:hover, .btn-primary:hover, .btn-ghost:hover, .btn-light:hover,
.btn-auth-wechat:hover, .btn-sync:hover, button:hover, a.btn:hover {
  transform: translateY(-1px);
}

/* ============================================================
   D6 微动效续 · W3(zheshou-web-design) · 2026-07-25
   列表项错序进入 + 卡片悬浮微缩放；纯 CSS；尊重 reduced-motion（见 :303）
   ============================================================ */
/* 列表项错序进入：父级加 .stagger-list，子项依次淡入上移（作用于 trust-grid 等列表） */
@keyframes w3-stagger-up {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
.stagger-list > * { animation: w3-stagger-up .5s ease both; }
.stagger-list > *:nth-child(1) { animation-delay: .02s; }
.stagger-list > *:nth-child(2) { animation-delay: .08s; }
.stagger-list > *:nth-child(3) { animation-delay: .14s; }
.stagger-list > *:nth-child(4) { animation-delay: .20s; }
.stagger-list > *:nth-child(5) { animation-delay: .26s; }
.stagger-list > *:nth-child(6) { animation-delay: .32s; }
.stagger-list > *:nth-child(7) { animation-delay: .38s; }
.stagger-list > *:nth-child(8) { animation-delay: .44s; }
.stagger-list > *:nth-child(n+9) { animation-delay: .50s; }
/* 落地到真实列表（trust-grid 无 hover 位移，零冲突） */
.trust-grid > * { animation: w3-stagger-up .5s ease both; }
.trust-grid > *:nth-child(1) { animation-delay: .02s; }
.trust-grid > *:nth-child(2) { animation-delay: .10s; }
.trust-grid > *:nth-child(3) { animation-delay: .18s; }
.trust-grid > *:nth-child(4) { animation-delay: .26s; }

/* 卡片悬浮微缩放：作用于既有卡片（mini-card/feat-card 无原 hover 位移，零冲突；
   sv-card 保留自身 translateY 上浮不动） */
.mini-card, .feat-card { transition: transform .2s ease, box-shadow .2s ease; }
.mini-card:hover, .feat-card:hover { transform: scale(1.02); box-shadow: var(--shadow-md); }

/* ============================================================
   D7 深色模式 · W3(zheshou-web-design) · 2026-07-25
   [data-theme="dark"] 增量覆盖：仅覆写 token + 关键硬编码白底，
   浅色默认布局完全不动。切换钩子在 home.js。
   ============================================================ */
[data-theme="dark"] {
  /* 表面 */
  --bg:#16131C;
  --bg-soft:#1F1B28;
  --card:#231F2D;
  --line:#332E3E;
  /* 文字 */
  --ink:#F3EFF5;
  --ink-2:#C5BECF;
  --ink-3:#8C8597;
  /* 品牌色提亮以适配深底（主/强调/紫） */
  --brand:#E9809C;
  --brand-dark:#F4A6BC;
  --brand-light:#FBC6D6;
  --accent:#EF7FA2;
  --accent-purple: var(--accent); /* 暗色别名兼容：恒为 --accent（浅玫瑰），功能 UI 已改用 --brand/--brand-dark；非紫 */
  --brand-soft:#2E2A28;
  --grad:linear-gradient(135deg,#D65A78,#B8436F);
  --grad-soft:linear-gradient(135deg,#23242e,#1E2128);
  /* 阴影加深 */
  --shadow-card:0 4px 16px rgba(0,0,0,.42);
  --shadow-md:0 8px 28px rgba(0,0,0,.48);
  --shadow-float:0 12px 32px rgba(214,90,120,.30);
  --shadow-lg:var(--shadow-float);
}
/* 关键硬编码白底/半透明表面适配深色（仅作用域内，不碰浅色） */
[data-theme="dark"] .site-header { background: rgba(22,19,28,.86); border-bottom-color: var(--line); }
[data-theme="dark"] .trust { background: var(--bg-soft); }
[data-theme="dark"] .drop-menu { background: var(--card); border-color: var(--line); }
[data-theme="dark"] .btn-ghost { background: var(--card); color: var(--brand-light); }
[data-theme="dark"] .phone { background: var(--card); border-color: #3A3545; }
[data-theme="dark"] .mini-card { background: var(--card); border-color: var(--line); }
[data-theme="dark"] .hero,
[data-theme="dark"] .features,
[data-theme="dark"] .core-block,
[data-theme="dark"] .sync-value { background: var(--bg-soft); }
[data-theme="dark"] .feat-card,
[data-theme="dark"] .sv-card { background: var(--card); border-color: var(--line); }
[data-theme="dark"] .drop-item:hover { background: var(--bg-soft); }
[data-theme="dark"] .di-ic { background: var(--grad-soft); }
[data-theme="dark"] .tag-soon { background: #23242e; color: var(--brand); }

/* ===== 我的（个人中心 · 对齐小程序 mine） ===== */
.mine-profile{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--scene-g1,#D65A78),var(--scene-g2,#D65A78));color:#fff;border-radius:var(--r-lg);padding:22px 24px;margin-bottom:20px;box-shadow:var(--shadow-md);}
.mine-profile .mp-avatar{width:48px;height:48px;flex-shrink:0;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:26px;}
.mine-profile .mp-info{flex:1;min-width:0;}
.mine-profile .mp-name{font-size:16px;font-weight:800;line-height:1.3;}
.mine-profile .mp-sub{font-size:12px;opacity:.85;margin-top:2px;}
.mine-profile .mp-badge{font-size:12px;font-weight:600;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.35);padding:5px 12px;border-radius:var(--r-pill);white-space:nowrap;}
/* 会员态徽章（2026-08-19）：金色系——金色仅用于仪式感场景（会员徽章），品牌规范合规 */
.mine-profile .mp-badge.vip{color:#C8A96A;border-color:rgba(200,169,106,.65);background:rgba(200,169,106,.12);}

.mine-kpi-sec{margin-bottom:20px;}
.mine-kpi-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.mine-kpi-t{font-size:14px;font-weight:700;color:var(--ink-2);}
.eye-btn{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--brand);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:.15s;}
.eye-btn:hover{border-color:var(--brand);background:var(--brand-soft);}
.amt-hidden .kpi .v{filter:blur(6px);}

.mine-member{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.mine-member .mm-ic{font-size:28px;flex-shrink:0;width:48px;height:48px;border-radius:12px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;}
.mine-member h4{margin:0 0 4px;}
.mine-member .wb-tip{margin:0;}

.mine-section{margin-bottom:20px;}
.mine-grp{font-size:14px;font-weight:700;color:var(--ink-2);margin:0 0 12px;padding-left:2px;}

/* ===== 关于 ===== */
.about-brand{background:linear-gradient(135deg,#D65A78,#B8436F);color:#fff;border-radius:var(--r-lg);padding:28px 26px;margin-bottom:20px;box-shadow:var(--shadow-md);}
.about-brand h3{font-size:20px;font-weight:800;margin:0 0 6px;}

/* ===== P1-5: 工作台内联样式收敛（从 app.html 迁移） ===== */
.todo-stage{margin-top:10px;}
.todo-stage-h{font-size:13px;color:var(--ink-2);font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between;}
.todo-stage-n{color:#9AA0A6;font-weight:400;}
.todo-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);}
.todo-item.done .todo-title{text-decoration:line-through;color:#9AA0A6;}
.todo-title{flex:1;}
.todo-empty{color:#9AA0A6;font-size:13px;padding:6px 0;}
.vendor-item{padding:10px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:var(--card);}
.vi-row1,.vi-row2{display:flex;gap:8px;margin-bottom:6px;}
.vi-row1 select,.vi-row1 input,.vi-row2 input,.vi-row2 select{flex:1;min-width:0;padding:7px 9px;border:1.5px solid var(--line);border-radius:8px;font-size:13px;font-family:inherit;background:var(--card);color:var(--ink);}
.vend-inner{flex-wrap:wrap;}
.honey-row{display:flex;gap:14px;margin:6px 0 12px;}
.honey-row label{flex:1;font-size:13px;color:var(--ink-2);display:flex;flex-direction:column;gap:4px;}
.honey-row input{padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;font-size:14px;font-family:inherit;background:var(--card);color:var(--ink);}
.honey-check-head{font-size:13px;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.honey-add-form{display:flex;gap:6px;margin-bottom:8px;}
.honey-add-form input{flex:1;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;font-family:inherit;background:var(--card);color:var(--ink);}
.tl-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
.tl-time{font-variant-numeric:tabular-nums;font-weight:700;color:#B8436F;min-width:48px;}
.tl-title{flex:1;}
.tl-owner{color:#9AA0A6;font-size:13px;}
.app-lock{position:fixed;inset:0;background:linear-gradient(135deg,#FFF5F7,#FDF2F8);z-index:9999;display:flex;align-items:center;justify-content:center;}
.app-lock-box{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(180,70,111,.15);padding:32px;width:340px;max-width:90vw;text-align:center;}
.app-lock-ic{font-size:40px;}
.app-lock h3{margin:10px 0 4px;color:var(--ink);}
.app-lock p{color:#9AA0A6;font-size:13px;margin:0 0 16px;}
.app-lock input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:16px;text-align:center;letter-spacing:4px;font-family:inherit;margin-bottom:12px;box-sizing:border-box;}
.app-lock-err{color:#D64545;font-size:13px;min-height:18px;margin-bottom:8px;}
.app-lock .lk-row{display:flex;gap:10px;}
.app-lock .lk-row button{flex:1;}
.app-lock-forget{display:block;margin-top:14px;font-size:12px;color:#9AA0A6;text-decoration:underline;cursor:pointer;}
.has-drop.open > .drop-toggle{color:var(--brand);}
.has-drop.open > .drop-toggle::after{transform:rotate(225deg);margin-top:2px;}
.has-drop.open .drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.mine-profile{position:relative;}
.about-brand p{opacity:.9;font-size:13px;margin:4px 0 0;}
.about-links{display:flex;gap:20px;flex-wrap:wrap;}
.about-icp{display:block;font-size:12px;color:var(--ink-3);margin-top:4px;}

/* ====== 小程序引流卡片 ====== */
.wb-shell .mine-mp-card{
  background:linear-gradient(135deg,#FFF5F7 0%,#FDF2F8 50%,#FCE7EE 100%);
  border:1px solid rgba(214,90,120,.15);
  border-radius:14px;
  padding:24px;
  text-align:center;
  margin-bottom:20px;
}
.wb-shell .mine-mp-card h4{font-size:18px;color:#D65A78;margin-bottom:6px;}
.wb-shell .mine-mp-card h4,.wb-shell .mine-mp-card .wb-tip{text-align:center;}
.wb-shell .mine-mp-card .wb-tip{color:#9A6B7B;font-size:13px;margin-bottom:16px;}
.mp-qrcode-wrap{display:flex;justify-content:center;margin-bottom:14px;}
.mp-qrcode-img{
  max-width:100%;height:auto;
  border-radius:12px;
  border:1px solid rgba(214,90,120,.12);
  box-shadow:0 2px 12px rgba(214,90,120,.08);
}

/* === P2-2 纸张纹理（3% 噪点，仅背景层，卡片内不叠加） === */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
}
body { position: relative; }
body > header, body > nav, body > main, body > section, body > footer, body > div { position: relative; z-index: 1; }
/* 卡片确保不透明，纹理不透入卡片内 */
.card, .cap-card, .scene-card, .kpi-card, .stat-card, .vendor-card, .todo-item, .cat-item, .tl-item, .record-row, .wb-card, .mk-card, .iv-card, .feat-card, .rel-card, .price-card, .member-card { background-color: #fff; }

/* === P2-3 衬线体点缀（每页≤2处，不做正文） === */
.font-serif { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; }
.font-serif-brand { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; color: var(--brand, #D65A78); }
/* Hero 标题关键词衬线点缀 */
.hero-title .accent { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; }
/* 叙事带序号 01/02/03 衬线巨字点缀 */
.vb-num { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; font-size: 56px; font-weight: 700; color: var(--brand, #D65A78); opacity: 0.55; line-height: 1; display: block; margin-bottom: 8px; }

/* === P2-5 工作台数据看板优化 === */
/* KPI 卡巨字 + 品牌色 */
.wb-shell .kpi { background: #fff; border: 1px solid var(--line, #ECE7E2); border-radius: var(--r-lg, 14px); padding: 20px 16px; text-align: left; position: relative; overflow: hidden; }
.wb-shell .kpi::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--brand, #D65A78), var(--brand-dark, #B8436F)); }
.wb-shell .kpi .v { font-size: 28px; font-weight: 800; color: var(--ink, #2B2826); display: block; margin-bottom: 4px; }
.wb-shell .kpi .v.inc { color: var(--brand, #D65A78); }
.wb-shell .kpi .v.exp { color: var(--neutral-700, #524E4A); }
.wb-shell .kpi .l { font-size: 12px; color: var(--ink-3, #9E9790); }
/* 档案夹式导航：选中态左侧色条 + 淡底 + 圆角 */
.wb-shell .wb-nav-item.active { background: rgba(214,90,120,.08); color: var(--brand, #D65A78); font-weight: 600; box-shadow: inset 3px 0 0 var(--brand, #D65A78); border-radius: 0 var(--r-md, 10px) var(--r-md, 10px) 0; }
.wb-shell .wb-nav-item { transition: all var(--duration-base, 200ms) var(--ease-standard, cubic-bezier(0.4,0,0.2,1)); }
/* 数据表格样式 */
.wb-shell .data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.wb-shell .data-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid var(--line, #ECE7E2); color: var(--ink-3, #9E9790); font-weight: 600; font-size: 12px; letter-spacing: .04em; }
.wb-shell .data-table td { padding: 10px 12px; border-bottom: 1px solid var(--line, #ECE7E2); color: var(--ink-2, #524E4A); }
.wb-shell .data-table tr:hover td { background: var(--brand-soft, #FFF1F5); }
.mp-features{
  font-size:12px;color:#8A6B7B;
  display:flex;flex-wrap:wrap;gap:8px;
  justify-content:center;
}

/* ====== 隐私徽章（精简版）===== */
.privacy-badges{
  display:flex;flex-wrap:wrap;gap:8px;
}
.pb-badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 12px;background:#F0FDF4;border:1px solid #BBF7D0;
  border-radius:999px;font-size:12px;color:#166534;
}

/* 关于页底部 */
.about-footer{text-align:center;padding:16px 0;color:var(--ink-3);font-size:13px;}
.about-footer p{margin:4px 0;}

/* 暗色适配（引流卡片保持浅色质感，仅弱化边框；隐私/底部随主题） */
[data-theme="dark"] .mine-mp-card{
  background:linear-gradient(135deg,rgba(214,90,120,.16) 0%,rgba(184,67,111,.16) 100%);
  border-color:rgba(214,90,120,.35);
}
[data-theme="dark"] .mine-mp-card h4{color:var(--brand-light,#E88AA3);}
[data-theme="dark"] .mine-mp-card .wb-tip{color:var(--ink-2);}
[data-theme="dark"] .mp-qrcode-img{border-color:rgba(214,90,120,.3);box-shadow:0 2px 12px rgba(0,0,0,.25);}
[data-theme="dark"] .mp-features{color:var(--ink-2);}
[data-theme="dark"] .pb-badge{background:rgba(22,101,52,.25);border-color:rgba(187,247,208,.4);color:#86EFAC;}

/* 暗色适配（品牌渐变保持，半透白元素适配深底） */
[data-theme="dark"] .mine-profile{background:linear-gradient(135deg,var(--scene-g1,#D65A78),var(--scene-g2,#D65A78));}
[data-theme="dark"] .mine-profile .mp-badge{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.3);}
/* 深色模式会员徽章：亮金提升可读性（特异性需高于上一条 dark 覆盖） */
[data-theme="dark"] .mine-profile .mp-badge.vip{color:#D4B87E;border-color:rgba(212,184,126,.6);background:rgba(200,169,106,.16);}
[data-theme="dark"] .eye-btn{background:#262A32;border-color:#2E2A28;color:var(--brand-light);}
[data-theme="dark"] .eye-btn:hover{background:#2E2330;}
[data-theme="dark"] .mine-member .mm-ic{background:#23242e;}
[data-theme="dark"] .about-brand{background:linear-gradient(135deg,#D65A78,#B8436F);}

/* ===== 我的页「我的」模块化折叠卡片（W3） ===== */
.mine-group-t{font-size:12px;font-weight:600;color:var(--ink-3,#999);letter-spacing:1px;margin:18px 4px 8px;}
.m-card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden;}
.m-card .m-head{display:flex;align-items:center;padding:13px 16px;gap:12px;cursor:pointer;user-select:none;}
.m-card .m-head:hover{background:var(--card-hover,#fafafa);}
.m-card .m-head.open{background:linear-gradient(135deg,rgba(214,90,120,.06),rgba(184,67,111,.06));}
.m-card .m-ic{font-size:19px;}
.m-card .m-tt{flex:1;}
.m-card .m-t{font-size:14px;font-weight:500;color:var(--ink);}
.m-card .m-d{font-size:11px;color:var(--ink-3,#aaa);margin-top:1px;}
.m-card .m-arrow{color:var(--ink-3,#ccc);font-size:16px;transition:transform .15s;}
.m-card .m-body{padding:0 16px 16px;border-top:1px solid var(--line);}
.m-card .m-body>*{margin-top:14px;}
.m-card.danger{border-color:#f3c4c4;}
.m-card.danger .m-t{color:#D64545;}
.m-card.danger .m-body{border-top-color:#f6e0e0;}

/* 账号卡片（独立展示登录身份） */
.mine-account{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px;}
.mine-account .ac-row{display:flex;align-items:center;gap:12px;}
.mine-account .ac-avatar{width:48px;height:48px;border-radius:50%;border:2px solid #D65A78;object-fit:cover;flex-shrink:0;background:#f3eef3;}
.mine-account .ac-avatar.ph{display:flex;align-items:center;justify-content:center;font-size:22px;color:#D65A78;}
.mine-account .ac-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;}
.mine-account .ac-name{font-size:15px;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:8px;}
.mine-account .ac-dot{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;}
.mine-account .ac-dot.ok{color:var(--brand);}
.mine-account .ac-dot.no{color:#c0392b;}
.mine-account .ac-dot i{width:7px;height:7px;border-radius:50%;display:inline-block;}
.mine-account .ac-dot.ok i{background:var(--brand);}
.mine-account .ac-dot.no i{background:#c0392b;}
.mine-account .ac-sub{font-size:11px;color:var(--ink-3,#999);}
.mine-account .ac-member{display:inline-block;margin-top:4px;background:linear-gradient(135deg,rgba(214,90,120,.08),rgba(184,67,111,.08));color:#D65A78;font-size:11px;padding:2px 8px;border-radius:8px;font-weight:500;}
.mine-account .ac-lastsync{text-align:right;flex-shrink:0;}
.mine-account .ac-lastsync .l{font-size:11px;color:var(--ink-3,#bbb);}
.mine-account .ac-lastsync .v{font-size:12px;color:var(--ink-2,#666);font-weight:500;}
.mine-account .ac-unbound{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);text-align:center;padding:14px;background:var(--card-hover,#fafafa);border-radius:8px;border:1px dashed #ccc;}
.mine-account .ac-unbound .u-ic{font-size:24px;margin-bottom:6px;}
.mine-account .ac-unbound .u-t{font-size:13px;color:var(--ink-2,#666);margin-bottom:6px;}
.mine-account .ac-unbound .u-d{font-size:11px;color:var(--ink-3,#999);margin-bottom:12px;}
.mine-account .ac-unbound button{background:linear-gradient(135deg,#D65A78,#B8436F);color:#fff;border:none;padding:8px 24px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;}

/* ── 满月专属：疫苗日历（纯 CSS 卡片，无图无 Canvas） ── */
.wed-vaccine-list{display:flex;flex-direction:column;gap:8px;}
.vac-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-soft);border-radius:var(--r-md);}
.vac-item.done .vac-name{text-decoration:line-through;color:var(--ink-2);}
.vac-name{flex:1;font-size:15px;color:var(--ink);font-weight:600;min-width:0;}
.vac-date{flex:0 0 auto;font-size:13px;color:var(--ink-2);white-space:nowrap;}
.vac-check{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:#eee;color:var(--ink-2);}
.vac-check.on{background:var(--brand,#D65A78);color:#fff;}
/* 疫苗日历可编辑控件（web 端，2026-07-27 W1） */
.vac-done-btn{flex:0 0 auto;background:none;border:1px solid var(--scene-g1,#D65A78);color:var(--scene-g1,#D65A78);border-radius:var(--r-sm);padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;}
.vac-done-btn.on{background:var(--scene-g1,#D65A78);color:#fff;}
.wed-vaccine-add{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap;}
.wed-vaccine-add input[type=text]{flex:1;min-width:160px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:14px;font-family:inherit;background:var(--bg);color:var(--ink);}
.wed-vaccine-add input[type=date]{padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:14px;font-family:inherit;background:var(--bg);color:var(--ink);}
.wed-guests-summary{display:flex;flex-direction:column;gap:8px;}

/* ── 新建账本弹窗（独立框架，不耦合 auth-modal / 云端同步；无 inset / 无 Canvas） ── */
.wb-book-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.wb-book-modal[hidden]{display:none;}
.wb-book-modal-mask{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(20,16,24,.5);}
.wb-book-modal-card{position:relative;width:100%;max-width:360px;background:var(--card,#fff);border-radius:var(--r-xl,16px);box-shadow:var(--shadow-float,0 12px 40px rgba(0,0,0,.18));padding:22px 20px 18px;text-align:center;}
.wb-book-modal-tt{font-size:18px;font-weight:800;color:var(--ink,#222);margin:0 0 4px;}
.wb-book-modal-sub{font-size:12.5px;color:var(--ink-3,#888);margin:0 0 14px;line-height:1.5;}
.wb-book-modal .wb-inline-input{width:100%;margin-bottom:14px;}
.wb-book-modal-btns{display:flex;gap:10px;margin-top:16px;}
.wb-book-modal-btns .btn-ghost,.wb-book-modal-btns .btn-primary{flex:1;}

/* 场景类型选择按钮（弹窗 + 设置页共用） */
.bc-types{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:6px;}
.bc-type{border:1.5px solid var(--line,#e3e3e8);background:var(--card,#fff);border-radius:var(--r-md,10px);padding:10px 8px;font-size:14px;font-family:inherit;cursor:pointer;color:var(--ink-2,#444);transition:all .15s;}
.bc-type:hover{border-color:#D65A78;}
.bc-type.on{border-color:#D65A78;background:rgba(214,90,120,.10);color:#D65A78;font-weight:700;}

/* 账本类型小徽标（切换器选项 / 设置列表） */
.book-type-tag{display:inline-block;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:600;color:#D65A78;background:rgba(214,90,120,.12);border-radius:999px;vertical-align:middle;}

/* ====== 全局 select 兜底美化：确保所有下拉框统一样式 ====== */
select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  padding-right:32px !important;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23D65A78' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 10px center !important;
  background-size:10px !important;
}
select:hover{border-color:var(--brand) !important;}
select:focus{outline:none;border-color:var(--brand) !important;box-shadow:0 0 0 3px rgba(214,90,120,0.15) !important;}
