/* ============================================================
   校哈哈 · XIAOHAHA  —  Design System
   高校新零售创业服务平台 · 设计规范
   风格：年轻活力 + 高档大气
   ============================================================ */

/* ---------- 1. Design Tokens ---------- */
:root {
  /* 品牌主色 · 校哈哈紫 */
  --brand-50:  #F1EEFF;
  --brand-100: #E3DCFF;
  --brand-300: #B7A7FF;
  --brand-500: #6D5AE6;   /* 主色 */
  --brand-600: #5B48D8;
  --brand-700: #4A38BE;
  --brand-grad: linear-gradient(135deg, #7B62FF 0%, #6D5AE6 45%, #5B48D8 100%);
  --brand-glow: 0 18px 40px -14px rgba(109, 90, 230, .55);

  /* 能量橙 · AI / 抢单 */
  --energy-500: #FF6A3D;
  --energy-600: #F2551F;
  --energy-grad: linear-gradient(135deg, #FF8A4C 0%, #FF6A3D 55%, #F2551F 100%);

  /* 财富绿 · 楼长 / 收益 */
  --money-500: #10B981;
  --money-600: #0C9E6E;
  --money-grad: linear-gradient(135deg, #2BD4A0 0%, #10B981 55%, #0C9E6E 100%);

  /* 价格红 */
  --price: #FF2E4D;

  /* 中性 · 墨 */
  --ink:      #14152B;
  --ink-2:    #45475F;
  --ink-3:    #6B6F8A;
  --ink-4:    #9A9FB8;
  --line:     #ECEDF4;
  --line-2:   #F3F4F9;
  --bg:       #F4F5FA;
  --surface:  #FFFFFF;
  --surface-2:#FAFBFE;

  /* 阴影体系（多层柔和） */
  --sh-xs: 0 1px 2px rgba(20,21,43,.05);
  --sh-sm: 0 2px 8px -2px rgba(20,21,43,.08);
  --sh-md: 0 8px 24px -8px rgba(20,21,43,.14);
  --sh-lg: 0 20px 48px -18px rgba(20,21,43,.22);
  --sh-xl: 0 32px 70px -24px rgba(20,21,43,.30);

  /* 圆角体系 */
  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-xl: 30px;
  --r-full: 999px;

  /* 间距 4pt 网格 */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 20px; --s6: 24px; --s8: 32px; --s10: 40px; --s12: 48px;

  /* 字体 */
  --font-display: 'Sora', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-body: 'PingFang SC', 'Microsoft YaHei', 'Source Han Sans SC', system-ui, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

/* ---------- 2. Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--brand-300); color: #fff; }

/* 数字用等宽 tabular + display 字体 */
.num { font-family: var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }

/* ---------- 3. App Shell ---------- */
.shell { min-height: 100vh; display: flex; }

/* 侧栏导航 */
.rail {
  width: 248px; flex-shrink: 0;
  background: linear-gradient(180deg, #1A1B34 0%, #16172C 100%);
  color: #fff; padding: var(--s6) var(--s5);
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column; gap: var(--s2);
  z-index: 50;
}
.rail__brand { display: flex; align-items: center; gap: 12px; padding: 4px 8px var(--s6); }
.rail__logo {
  width: 44px; height: 44px; border-radius: 13px;
  background: var(--brand-grad); box-shadow: var(--brand-glow);
  display: grid; place-items: center; font-size: 22px; flex-shrink: 0;
  position: relative; overflow: hidden;
}
.rail__logo::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(255,255,255,.35),transparent 45%); }
.rail__name { font-family: var(--font-display); font-weight: 800; font-size: 19px; letter-spacing: -.01em; }
.rail__name small { display: block; font-family: var(--font-body); font-weight: 400; font-size: 11px; color: #8B8DAE; letter-spacing: .08em; margin-top: 2px; }

.rail__group { font-size: 11px; color: #6B6D8C; letter-spacing: .14em; text-transform: uppercase; padding: var(--s4) 12px var(--s2); font-weight: 600; }
.rail__item {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 14px; border-radius: 12px; color: #B9BAD4;
  font-size: 14.5px; font-weight: 500; transition: all .2s var(--ease);
  width: 100%; text-align: left;
}
.rail__item:hover { background: rgba(255,255,255,.06); color: #fff; }
.rail__item.active { background: var(--brand-grad); color: #fff; box-shadow: var(--brand-glow); }
.rail__item .ic { width: 20px; height: 20px; flex-shrink: 0; }
.rail__foot { margin-top: auto; font-size: 12px; color: #5B5D7C; padding: 12px; line-height: 1.7; }
.rail__foot b { color: #9A9CBE; }

.canvas { flex: 1; min-width: 0; }

/* 顶栏 */
.topbar {
  height: 66px; background: rgba(255,255,255,.72); backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--s8); position: sticky; top: 0; z-index: 40;
}
.topbar h1 { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.topbar .crumb { color: var(--ink-4); font-size: 13px; margin-top: 1px; }
.topbar__actions { display: flex; align-items: center; gap: 12px; }
.pill { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:var(--r-full); font-size:13px; font-weight:600; background:var(--brand-50); color:var(--brand-600); }
.avatar-sm { width: 38px; height: 38px; border-radius: 50%; background: var(--brand-grad); display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 15px; }

/* 视图切换 */
.view { display: none; animation: fade .45s var(--ease-out); }
.view.active { display: block; }
@keyframes fade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.wrap { max-width: 1240px; margin: 0 auto; padding: var(--s8); }

/* ---------- 4. 通用组件 ---------- */
.section-head { margin-bottom: var(--s6); }
.section-head .eyebrow { color: var(--brand-500); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.section-head h2 { font-size: 30px; font-weight: 800; letter-spacing: -.02em; margin-top: 8px; }
.section-head p { color: var(--ink-3); font-size: 15px; margin-top: 8px; max-width: 620px; }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-sm); }
.grid { display: grid; gap: var(--s5); }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 22px; border-radius:var(--r-full); font-weight:700; font-size:14.5px; transition:all .22s var(--ease); }
.btn--primary { background: var(--brand-grad); color:#fff; box-shadow: var(--brand-glow); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 24px 48px -16px rgba(109,90,230,.6); }
.btn--energy { background: var(--energy-grad); color:#fff; box-shadow: 0 16px 34px -14px rgba(242,85,31,.55); }
.btn--money { background: var(--money-grad); color:#fff; box-shadow: 0 16px 34px -14px rgba(16,185,129,.5); }
.btn--ghost { background:#fff; border:1.5px solid var(--line); color:var(--ink); }
.btn--ghost:hover { border-color: var(--brand-300); color: var(--brand-600); }

.badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:var(--r-full); font-size:11.5px; font-weight:700; }
.badge--brand { background:var(--brand-50); color:var(--brand-600); }
.badge--energy { background:#FFF0EA; color:var(--energy-600); }
.badge--money { background:#E7FaF3; color:var(--money-600); }
.badge--hot { background:#FFEDEE; color:var(--price); }

/* ============================================================
   设计规范展示页
   ============================================================ */
.hero {
  border-radius: var(--r-xl); overflow: hidden; position: relative;
  padding: 64px 56px; color: #fff; margin-bottom: var(--s8);
  background: #201f45;
}
.hero__aurora { position:absolute; inset:-40% -10% auto; height:140%; filter: blur(60px); opacity:.9; pointer-events:none; }
.hero__aurora span { position:absolute; border-radius:50%; }
.hero__aurora .a1 { width:420px; height:420px; background:#7B62FF; left:2%; top:-10%; }
.hero__aurora .a2 { width:360px; height:360px; background:#FF6A3D; right:8%; top:6%; }
.hero__aurora .a3 { width:340px; height:340px; background:#10B981; left:38%; top:30%; opacity:.7; }
.hero__inner { position: relative; z-index: 1; }
.hero .kicker { display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:var(--r-full); background:rgba(255,255,255,.14); backdrop-filter:blur(8px); font-size:13px; font-weight:600; border:1px solid rgba(255,255,255,.2); }
.hero h1 { font-family:var(--font-display); font-size:52px; font-weight:800; letter-spacing:-.03em; margin:22px 0 14px; line-height:1.05; }
.hero p { font-size:17px; max-width:560px; color:rgba(255,255,255,.82); line-height:1.7; }
.hero__stats { display:flex; gap:44px; margin-top:38px; }
.hero__stats .num { font-size:34px; font-weight:800; display:block; }
.hero__stats small { color:rgba(255,255,255,.6); font-size:13px; }

/* ---- 总览封面页 ---- */
.hero--cover { padding: 72px 56px; }
.hero__cta { display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.btn--glass { background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(8px); box-shadow:none; }
.btn--glass:hover { background:rgba(255,255,255,.24); transform:translateY(-2px); }

.end-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.end-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:28px; box-shadow:var(--sh-sm); cursor:pointer; position:relative; overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.end-card::before { content:''; position:absolute; inset:0 0 auto; height:4px; background:var(--brand-grad); opacity:0; transition:opacity .3s; }
.end-card:hover { transform:translateY(-6px); box-shadow:var(--sh-lg); border-color:var(--brand-100); }
.end-card:hover::before { opacity:1; }
.end-card__ic { width:56px; height:56px; border-radius:16px; display:grid; place-items:center; color:#fff; box-shadow:var(--sh-md); margin-bottom:18px; }
.end-card__en { font-family:var(--font-display); font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-500); }
.end-card h3 { font-size:20px; font-weight:800; margin:6px 0 10px; letter-spacing:-.01em; }
.end-card p { color:var(--ink-3); font-size:13.5px; line-height:1.6; margin-bottom:16px; }
.end-card ul { list-style:none; display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.end-card ul li { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--ink-2); }
.end-card ul li i { color:var(--money-500); }
.end-card__go { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:13.5px; color:var(--brand-600); }
.end-card:hover .end-card__go i { transform:translateX(4px); }
.end-card__go i { transition:transform .25s; }

.loop-card { padding:28px; }
.loop { display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.loop__step { display:flex; align-items:center; gap:9px; padding:12px 16px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; font-size:13.5px; font-weight:600; margin:5px 0; transition:all .2s; }
.loop__step:hover { border-color:var(--brand-300); background:var(--brand-50); transform:translateY(-2px); }
.loop__n { width:22px; height:22px; border-radius:7px; background:var(--brand-grad); color:#fff; display:grid; place-items:center; font-size:12px; font-weight:800; font-family:var(--font-display); }
.loop__arrow { color:var(--brand-300); margin:0 4px; }

.split-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.role-table { display:flex; flex-direction:column; gap:12px; }
.role-row { display:flex; align-items:center; gap:14px; padding:14px 16px; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; }
.role-row__bar { width:5px; height:38px; border-radius:4px; overflow:hidden; }
.role-row__bar span { display:block; width:100%; height:100%; }
.role-row__info { flex:1; }
.role-row__info b { font-size:14.5px; }
.role-row__info span { display:block; font-size:12px; color:var(--ink-4); margin-top:2px; }
.role-row__pct { font-size:24px; font-weight:800; }

.funnel { display:flex; flex-direction:column; gap:11px; margin-bottom:20px; }
.funnel__row { display:flex; }
.funnel__bar { display:flex; align-items:center; justify-content:space-between; padding:13px 18px; border-radius:12px; color:#fff; font-size:13.5px; font-weight:600; background:var(--brand-grad); box-shadow:var(--sh-sm); min-width:180px; }
.funnel__row:nth-child(2) .funnel__bar { background:linear-gradient(135deg,#8B7CF6,#6D5AE6); }
.funnel__row:nth-child(3) .funnel__bar { background:var(--money-grad); }
.funnel__row:nth-child(4) .funnel__bar { background:var(--energy-grad); }
.funnel__bar b { font-size:17px; font-family:var(--font-display); }
.mini-kpi { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.mini-kpi div { background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:14px; text-align:center; }
.mini-kpi span { font-size:11.5px; color:var(--ink-4); display:block; }
.mini-kpi b { font-size:18px; font-weight:800; color:var(--money-600); display:block; margin-top:4px; }

/* 五维分润计算器 */
.calc { padding:0; overflow:hidden; display:grid; grid-template-columns:1fr 1.15fr; }
.calc__controls { padding:30px; background:var(--surface-2); border-right:1px solid var(--line); }
.calc__field { margin-bottom:24px; }
.calc__field label { display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px; font-weight:600; color:var(--ink-2); margin-bottom:12px; }
.calc__field label b { font-size:17px; color:var(--brand-600); }
.slider { -webkit-appearance:none; appearance:none; width:100%; height:7px; border-radius:6px; background:var(--line); outline:none; }
.slider::-webkit-slider-thumb { -webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:#fff; border:none; box-shadow:0 2px 8px rgba(109,90,230,.5),inset 0 0 0 6px var(--brand-500); cursor:pointer; transition:transform .15s; }
.slider::-webkit-slider-thumb:hover { transform:scale(1.15); }
.slider::-moz-range-thumb { width:22px; height:22px; border-radius:50%; background:var(--brand-500); border:3px solid #fff; box-shadow:0 2px 8px rgba(109,90,230,.5); cursor:pointer; }
.calc__toggles { display:flex; flex-direction:column; gap:12px; margin-top:4px; }
.calc__seg { display:flex; background:#fff; border:1px solid var(--line); border-radius:12px; padding:4px; }
.calc__seg button { flex:1; padding:10px; border-radius:9px; font-size:13px; font-weight:600; color:var(--ink-3); transition:all .2s; }
.calc__seg button.on { background:var(--brand-grad); color:#fff; box-shadow:var(--brand-glow); }
.calc__seg.is-disabled { opacity:.45; pointer-events:none; }
.calc__result { padding:30px; }
.calc__profit { display:flex; align-items:baseline; justify-content:space-between; font-size:14px; font-weight:600; color:var(--ink-3); padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.calc__profit b { font-size:26px; color:var(--ink); }
.calc__bars { display:flex; flex-direction:column; gap:13px; margin-bottom:22px; }
.calc__bar { display:grid; grid-template-columns:132px 1fr 78px; align-items:center; gap:12px; padding:7px 10px; border-radius:10px; transition:background .2s; }
.calc__bar.is-mine { background:#F0FBF6; box-shadow:inset 0 0 0 1px #C7F0DF; }
.calc__bar-l { font-size:12.5px; color:var(--ink-2); font-weight:600; white-space:nowrap; }
.calc__bar.is-mine .calc__bar-l::after { content:' ✓'; color:var(--money-600); font-weight:800; font-size:12px; }
.calc__bar-t { height:10px; border-radius:6px; background:var(--line-2); overflow:hidden; }
.calc__bar-t i { display:block; height:100%; border-radius:6px; width:0; transition:width .5s var(--ease-out); }
.calc__bar b { text-align:right; font-size:13.5px; font-weight:700; }
.calc__mine { background:var(--money-grad); color:#fff; border-radius:16px; padding:20px 22px; box-shadow:0 16px 34px -14px rgba(16,185,129,.5); }
.calc__mine > div:first-child { display:flex; align-items:baseline; justify-content:space-between; }
.calc__mine span { font-size:13.5px; opacity:.9; }
.calc__mine b { font-size:30px; font-weight:800; }
.calc__mine-note { font-size:12px; opacity:.9; margin-top:8px; line-height:1.5; }
@media (max-width:900px){ .calc { grid-template-columns:1fr; } .calc__controls { border-right:none; border-bottom:1px solid var(--line); } .calc__bar { grid-template-columns:96px 1fr 74px; } }

.cta-band {
  border-radius:var(--r-xl); padding:36px 44px; margin-bottom:12px;
  background:var(--brand-grad); color:#fff; box-shadow:var(--brand-glow);
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  position:relative; overflow:hidden;
}
.cta-band::after { content:''; position:absolute; right:-40px; top:-60px; width:220px; height:220px; background:rgba(255,255,255,.12); border-radius:50%; }
.cta-band h3 { font-size:22px; font-weight:800; position:relative; }
.cta-band p { opacity:.85; font-size:14px; margin-top:6px; position:relative; }
.cta-band__btns { display:flex; gap:12px; flex-wrap:wrap; position:relative; }

.swatches { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.swatch { border-radius:var(--r-md); overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:var(--sh-xs); }
.swatch__top { height:96px; display:flex; align-items:flex-end; padding:12px; color:#fff; font-family:var(--font-display); font-weight:700; font-size:13px; }
.swatch__meta { padding:12px 14px; }
.swatch__meta b { font-size:14px; display:block; }
.swatch__meta span { font-size:12px; color:var(--ink-4); font-family:var(--font-display); }

.spec-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.spec { padding:26px; }
.spec h3 { font-size:16px; margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.type-row { display:flex; align-items:baseline; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--line); }
.type-row:last-child { border:none; }
.type-row span:last-child { color:var(--ink-4); font-size:12px; font-family:var(--font-display); }
.radius-demo { display:flex; gap:14px; align-items:flex-end; }
.radius-demo div { width:52px; height:52px; background:var(--brand-50); border:1.5px solid var(--brand-300); }
.shadow-demo { display:flex; gap:20px; flex-wrap:wrap; }
.shadow-demo div { width:78px; height:78px; border-radius:16px; background:#fff; display:grid; place-items:center; font-size:11px; color:var(--ink-4); }

/* ============================================================
   移动端设备框
   ============================================================ */
.phones { display:flex; gap:34px; flex-wrap:wrap; justify-content:center; align-items:flex-start; }
.phone {
  width: 340px; flex-shrink: 0;
}
.phone__frame {
  width: 340px; height: 712px; border-radius: 46px; background: #0B0C1A;
  padding: 11px; box-shadow: var(--sh-xl), inset 0 0 0 2px rgba(255,255,255,.06);
  position: relative;
}
.phone__frame::before { content:''; position:absolute; top:20px; left:50%; transform:translateX(-50%); width:120px; height:26px; background:#0B0C1A; border-radius:0 0 16px 16px; z-index:20; }
.screen {
  width:100%; height:100%; border-radius:36px; overflow:hidden; background:var(--bg);
  position:relative; display:flex; flex-direction:column;
}
.phone__label { text-align:center; margin-top:18px; font-weight:700; font-size:15px; }
.phone__label small { display:block; color:var(--ink-4); font-weight:400; font-size:12.5px; margin-top:3px; }

/* 状态栏 */
.statusbar { height:44px; display:flex; align-items:flex-end; justify-content:space-between; padding:0 22px 6px; font-size:13px; font-weight:600; flex-shrink:0; }
.statusbar .dots { display:flex; gap:5px; align-items:center; }

/* 应用顶部 */
.app-nav { padding:6px 18px 12px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.app-nav h3 { font-size:17px; font-weight:800; letter-spacing:-.01em; }
.app-nav .back { font-size:18px; color:var(--ink-2); }
.app-nav a { color:var(--brand-500); font-size:13.5px; font-weight:600; }

/* 应用滚动内容 */
.app-body { flex:1; overflow-y:auto; overflow-x:hidden; padding:0 14px 16px; }
.app-body::-webkit-scrollbar { width:0; }

/* 底部 Tab 栏 */
.tabbar { flex-shrink:0; height:66px; background:rgba(255,255,255,.92); backdrop-filter:blur(16px); border-top:1px solid var(--line); display:flex; padding-bottom:8px; }
.tabbar__item { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--ink-4); font-size:10.5px; font-weight:600; transition:color .2s; }
.tabbar__item .ic { width:23px; height:23px; }
.tabbar__item.active { color:var(--brand-500); }
.tabbar__item--primary { position:relative; transform:translateY(-13px); color:var(--brand-600); font-size:11px; font-weight:800; }
.tabbar__item--primary .ic { width:44px; height:44px; padding:10px; border-radius:50%; background:linear-gradient(135deg,#FF6A3D,#7B62FF); color:#fff; box-shadow:0 14px 26px -12px rgba(255,106,61,.75); margin-bottom:1px; }
.tabbar__item--primary.active { color:var(--energy-600); }
.tabbar__item--primary.active .ic { box-shadow:0 16px 30px -10px rgba(123,98,255,.72); }
.tabbar--money .tabbar__item.active { color:var(--money-600); }

/* app 内页切换 */
.app-stage { flex:1; min-height:0; display:flex; flex-direction:column; }
.app-page { display:none; flex:1; min-height:0; flex-direction:column; animation:appfade .38s var(--ease-out); }
.app-page.active { display:flex; }
@keyframes appfade { from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }

/* ---------- 消费者端组件 ---------- */
#mount-consumer .consumer-stock{display:inline-block;margin-top:5px;font-size:11.5px;font-weight:750;color:var(--money-600)}
#mount-consumer .consumer-stock--out{color:var(--energy-600)}
#mount-consumer .consumer-buy{width:100%;min-height:44px;margin-top:7px;padding:7px 9px;font-size:12px}
#mount-consumer .consumer-buy:disabled,#mount-consumer [data-act="qty-inc"]:disabled{cursor:not-allowed;opacity:.5}
.banner {
  border-radius:var(--r-lg); padding:20px; color:#fff; position:relative; overflow:hidden;
  background:var(--brand-grad); box-shadow:var(--brand-glow); margin-bottom:16px;
}
.banner::after { content:''; position:absolute; right:-30px; top:-30px; width:140px; height:140px; background:rgba(255,255,255,.14); border-radius:50%; }
.banner h4 { font-size:19px; font-weight:800; margin-bottom:5px; position:relative; }
.banner p { font-size:12.5px; opacity:.9; margin-bottom:14px; position:relative; }
.banner .btn { padding:8px 16px; font-size:13px; background:rgba(255,255,255,.22); color:#fff; backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.3); box-shadow:none; }
.promo-tabs { position:relative; display:inline-flex; gap:4px; padding:3px; border-radius:999px; background:rgba(255,255,255,.16); margin-bottom:12px; }
.promo-tabs button { padding:5px 10px; border-radius:999px; color:#fff; font-size:11.5px; font-weight:800; opacity:.78; }
.promo-tabs button.on { background:rgba(255,255,255,.24); opacity:1; }
.promo-slide { display:none; position:relative; }
.promo-slide.on { display:block; }
.promo-slide p span { font-size:11.5px; opacity:.94; }

.quick { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:18px; }
.quick__item { display:flex; flex-direction:column; align-items:center; gap:7px; }
.quick__ic { width:52px; height:52px; border-radius:17px; display:grid; place-items:center; font-size:24px; box-shadow:var(--sh-xs); }
.quick__item span { font-size:11.5px; color:var(--ink-2); font-weight:600; }

.block-title { display:flex; align-items:center; justify-content:space-between; margin:6px 2px 12px; }
.block-title b { font-size:15.5px; font-weight:800; display:flex; align-items:center; gap:6px; }
.block-title a { font-size:12px; color:var(--ink-4); font-weight:500; }

.prod-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.prod {
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--sh-xs); transition:transform .2s var(--ease), box-shadow .2s;
}
.prod:active { transform:scale(.97); }
.prod__img { height:104px; display:grid; place-items:center; font-size:44px; overflow:hidden; }
/* 真实图片填充：铺满容器、按比例裁切、继承圆角 */
.ph { width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; background:var(--line-2); }
.quick__ic, .cat-card .em, .post__ava, .grab__img, .member .a,
.u-cell .a, .profile-hero .u .a, .tpl, .banner { overflow:hidden; }
/* Banner 底图 + 渐变遮罩，保证文字可读 */
.banner__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.banner__mask { position:absolute; inset:0; background:linear-gradient(120deg,rgba(109,90,230,.9),rgba(91,72,216,.6)); z-index:1; }
.banner__ct { position:relative; z-index:2; }
.prod__info { padding:9px 11px 12px; }
.prod__info h5 { font-size:12.5px; font-weight:600; line-height:1.35; height:34px; overflow:hidden; }
.prod__price { display:flex; align-items:baseline; gap:6px; margin-top:6px; }
.prod__price .now { color:var(--price); font-weight:800; font-size:16px; font-family:var(--font-display); }
.prod__price .now small { font-size:11px; }
.prod__price .was { color:var(--ink-4); font-size:11px; text-decoration:line-through; }
.prod__tag { margin-top:7px; }

.cat-row { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-bottom:16px; }
.cat-card { display:flex; align-items:center; gap:10px; padding:13px; border-radius:var(--r-md); background:#fff; border:1px solid var(--line); box-shadow:var(--sh-xs); }
.cat-card .em { width:40px; height:40px; border-radius:12px; display:grid; place-items:center; font-size:20px; }
.cat-card b { font-size:13.5px; }
.cat-card span { font-size:11px; color:var(--ink-4); display:block; }

/* 帖子（校哈吧） */
.seg { display:flex; gap:8px; overflow-x:auto; padding:2px 2px 12px; }
.seg::-webkit-scrollbar { height:0; }
.seg button { flex-shrink:0; padding:7px 15px; border-radius:var(--r-full); font-size:13px; font-weight:600; background:#fff; border:1px solid var(--line); color:var(--ink-3); }
.seg button.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.post { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:14px; margin-bottom:12px; box-shadow:var(--sh-xs); }
.post__head { display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.post__ava { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font-size:18px; flex-shrink:0; }
.post__head b { font-size:13.5px; }
.post__head span { font-size:11px; color:var(--ink-4); }
.post__body { font-size:13px; color:var(--ink-2); line-height:1.6; }
.post__buy { margin-top:10px; display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:12px; background:var(--brand-50); font-size:12.5px; color:var(--brand-600); font-weight:600; }
.post__images { display:grid; gap:6px; margin-top:10px; border-radius:12px; overflow:hidden; }
.post__images--1 { grid-template-columns:1fr; }
.post__images--2, .post__images--3, .post__images--4 { grid-template-columns:repeat(2,1fr); }
.post__images div { aspect-ratio:1.35; background:var(--line-2); overflow:hidden; }
.post__products { display:grid; gap:8px; margin-top:10px; }
.post__product { display:grid; grid-template-columns:48px 1fr auto; grid-template-areas:"img name price" "img desc desc"; gap:2px 8px; align-items:center; padding:8px; border:1px solid var(--line); border-radius:12px; background:var(--brand-50); cursor:pointer; }
.post__product div { grid-area:img; width:48px; height:48px; border-radius:10px; overflow:hidden; background:var(--line-2); }
.post__product b { grid-area:name; min-width:0; font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.post__product span { grid-area:price; color:var(--price,#F5533D); font-size:12px; font-weight:900; }
.post__product em { grid-area:desc; min-width:0; color:var(--ink-4); font-size:11px; font-style:normal; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.post__foot { display:flex; gap:18px; margin-top:11px; font-size:12px; color:var(--ink-4); }
.post__foot span { display:flex; align-items:center; gap:4px; }
.compose-tags { display:flex; gap:8px; overflow-x:auto; padding-bottom:10px; }
.compose-tags label { flex-shrink:0; }
.compose-tags input { display:none; }
.compose-tags span { display:block; padding:7px 12px; border:1px solid var(--line); border-radius:var(--r-full); font-size:12.5px; font-weight:700; color:var(--ink-3); background:#fff; }
.compose-tags input:checked + span { background:var(--ink); border-color:var(--ink); color:#fff; }
.compose-section { margin-top:12px; }
.compose-section > b { display:flex; align-items:center; gap:6px; font-size:13px; margin-bottom:8px; }
.compose-section > b span { margin-left:auto; color:var(--ink-4); font-size:11.5px; font-weight:500; }
.compose-upload { display:flex; margin-bottom:8px; }
.compose-upload input { display:none; }
.compose-upload span { width:100%; min-height:44px; display:flex; align-items:center; justify-content:center; gap:6px; border:1px dashed var(--brand-300); border-radius:12px; background:var(--brand-50); color:var(--brand-600); font-size:13px; font-weight:800; }
.compose-images { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.compose-images button { aspect-ratio:1; border:2px solid transparent; border-radius:12px; overflow:hidden; padding:0; background:var(--line-2); }
.compose-images button.on { border-color:var(--brand-500); box-shadow:0 0 0 3px var(--brand-50); }
.compose-images .compose-empty { grid-column:1 / -1; min-height:42px; display:grid; place-items:center; border:1px solid var(--line); border-radius:12px; color:var(--ink-4); font-size:12px; background:var(--surface-2); }
.compose-products { display:grid; gap:8px; }
.compose-products button { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:8px; padding:8px; border:1px solid var(--line); border-radius:12px; background:#fff; text-align:left; }
.compose-products button.on { border-color:var(--brand-500); background:var(--brand-50); }
.compose-products span { width:42px; height:42px; border-radius:10px; overflow:hidden; background:var(--line-2); }
.compose-products strong { min-width:0; font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.compose-products em { font-style:normal; color:var(--price,#F5533D); font-size:12px; font-weight:800; }

/* AI 分身 */
.tog { display:flex; background:var(--line-2); border-radius:14px; padding:4px; margin-bottom:16px; }
.tog button { flex:1; padding:10px; border-radius:11px; font-size:13.5px; font-weight:700; color:var(--ink-3); transition:all .2s; }
.tog button.on { background:var(--brand-grad); color:#fff; box-shadow:var(--brand-glow); }
.tog--energy button.on { background:var(--energy-grad); box-shadow:0 12px 26px -12px rgba(242,85,31,.5); }
.ai-hero { display:flex; gap:12px; padding:15px; border-radius:18px; background:linear-gradient(135deg,var(--brand-500),#4F8DF7); color:#fff; box-shadow:var(--brand-glow); margin-bottom:14px; }
.ai-hero__ic { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:rgba(255,255,255,.18); flex-shrink:0; }
.ai-hero h4 { font-size:18px; font-weight:900; line-height:1.25; margin-bottom:5px; }
.ai-hero p { font-size:12.5px; line-height:1.55; opacity:.92; }
.share-mode { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 14px; }
.share-mode button { padding:10px; border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--ink-3); font-size:12.5px; font-weight:800; display:flex; align-items:center; justify-content:center; gap:5px; box-shadow:var(--sh-xs); }
.share-mode button.on { background:var(--brand-grad); color:#fff; border-color:transparent; box-shadow:var(--brand-glow); }
.poster-card { padding:12px; margin:2px 0 12px; display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:10px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--sh-xs); }
.poster-card__img { width:52px; height:52px; border-radius:13px; overflow:hidden; background:var(--line-2); }
.poster-card b { display:block; font-size:13px; margin-bottom:3px; }
.poster-card span { display:block; font-size:11.5px; color:var(--ink-4); }
.ai-ability { display:grid; gap:10px; margin:0 0 16px; }
.ai-ability div { display:grid; grid-template-columns:auto 1fr; gap:4px 9px; padding:12px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--sh-xs); }
.ai-ability i { grid-row:1 / span 2; color:var(--brand-500); margin-top:1px; }
.ai-ability b { font-size:13px; }
.ai-ability span { font-size:11.5px; color:var(--ink-4); line-height:1.5; }
.ai-avatar-form { display:grid; grid-template-columns:78px 1fr; gap:11px; align-items:start; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--sh-xs); }
.avatar-pick { display:flex; flex-direction:column; gap:8px; }
.avatar-pick__img { width:68px; height:68px; border-radius:18px; overflow:hidden; background:var(--line-2); }
.avatar-pick .btn { padding:8px 4px; font-size:11.5px; box-shadow:none; }
.ai-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; min-width:0; }
.ai-form-grid label:first-child { grid-column:1 / -1; }
.ai-form-grid span { display:block; font-size:11px; color:var(--ink-4); margin-bottom:4px; }
.ai-form-grid .field { height:38px; border-radius:10px; padding:0 10px; font-size:12.5px; }
.tag-cloud { margin-bottom:12px; }
.tag-cloud .chip { border-radius:10px; }
.task-card { display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--sh-xs); margin-bottom:11px; }
.task-card__ic { width:42px; height:42px; border-radius:13px; display:grid; place-items:center; color:#fff; }
.task-card b { display:block; font-size:13px; margin-bottom:4px; }
.task-card span { display:block; font-size:11.5px; color:var(--ink-4); line-height:1.5; }
.task-card .btn { padding:9px 11px; font-size:12px; white-space:nowrap; box-shadow:none; }
.ad-task { grid-template-columns:52px 1fr auto; }
.ad-task .order-item__img { flex:0 0 52px; }
.ad-compose { display:flex; flex-direction:column; gap:9px; }
.ad-compose p { margin:0; }
.ad-compose p strong { color:var(--ink); }
.ad-compose label span { display:block; font-size:11.5px; font-weight:700; color:var(--ink-4); margin-bottom:5px; }
.ad-compose .field { border-radius:10px; padding:10px; line-height:1.45; }
.ad-compose .btn { width:100%; margin-top:2px; }
.ad-task__head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.ad-task__head b { margin-bottom:0; min-width:0; }
.ad-task__reward { display:inline-flex; align-items:center; min-height:24px; padding:3px 9px; border-radius:999px; background:#FFEDEE; color:var(--price); font-size:14px; font-weight:800; box-shadow:0 8px 18px -10px rgba(255,46,77,.65); }
.ad-task__action { display:flex; flex-direction:column; align-items:center; gap:7px; min-width:68px; }
.ad-task__quota { text-align:center; }
.ad-task__quota b { margin:0; color:var(--price); font-size:24px; line-height:1; }
.ad-task__quota span { margin-top:3px; font-size:10.5px; font-weight:700; color:var(--ink-4); }
.flow-line { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:10px; }
.flow-line span { min-height:32px; display:grid; place-items:center; padding:6px 5px; border-radius:10px; background:#F7F8FF; color:var(--brand-600); font-size:11px; font-weight:800; text-align:center; line-height:1.25; }
.stat3 { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:16px; }
.stat3 .s { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:14px 8px; text-align:center; box-shadow:var(--sh-xs); }
.stat3 .s b { font-size:22px; font-weight:800; font-family:var(--font-display); }
.stat3 .s span { font-size:11px; color:var(--ink-4); display:block; margin-top:2px; }
.tpl-row { display:flex; gap:11px; overflow-x:auto; padding-bottom:12px; margin:0 -2px; }
.tpl-row::-webkit-scrollbar{height:0;}
.tpl { flex-shrink:0; width:118px; height:150px; border-radius:16px; display:grid; place-items:center; font-size:40px; color:#fff; position:relative; box-shadow:var(--sh-sm); border:2px solid transparent; }
.tpl.on { border-color:var(--brand-500); box-shadow:var(--brand-glow); }
.tpl span { position:absolute; bottom:10px; left:0; right:0; text-align:center; font-size:12px; font-weight:700; text-shadow:0 1px 4px rgba(0,0,0,.3); }
.platforms { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:14px 0; }
.plat { padding:11px; border-radius:12px; border:1px solid var(--line); text-align:center; font-size:12.5px; font-weight:600; background:#fff; display:flex; align-items:center; justify-content:center; gap:6px; }
.field { width:100%; border:1px solid var(--line); border-radius:14px; padding:14px; font-size:13px; font-family:inherit; resize:none; background:var(--surface-2); color:var(--ink); }
.chips { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.chip { padding:6px 13px; border-radius:var(--r-full); font-size:12px; font-weight:600; background:#fff; border:1px solid var(--line); color:var(--ink-3); }
.chip.on { color:#fff; }

/* 个人中心 */
.profile-hero { border-radius:var(--r-lg); padding:20px; color:#fff; background:var(--brand-grad); box-shadow:var(--brand-glow); margin-bottom:16px; position:relative; overflow:hidden; }
.profile-hero::after{content:'';position:absolute;right:-40px;bottom:-50px;width:160px;height:160px;background:rgba(255,255,255,.12);border-radius:50%;}
.profile-hero .u { display:flex; align-items:center; gap:13px; position:relative; }
.profile-hero .u .a { width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.25); display:grid; place-items:center; font-size:28px; border:2px solid rgba(255,255,255,.4); }
.profile-hero .u b { font-size:18px; font-weight:800; }
.profile-hero .u span { font-size:12px; opacity:.85; }
.profile-hero .row4 { display:grid; grid-template-columns:repeat(4,1fr); margin-top:18px; position:relative; }
.profile-hero .row4 .c { text-align:center; }
.profile-hero .row4 .c b { font-size:20px; font-weight:800; font-family:var(--font-display); display:block; }
.profile-hero .row4 .c span { font-size:10.5px; opacity:.8; }
.menu { background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-xs); }
.menu a { display:flex; align-items:center; gap:13px; padding:15px 16px; border-bottom:1px solid var(--line-2); font-size:14px; font-weight:500; }
.menu a:last-child{border:none;}
.menu a .mi { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font-size:17px; flex-shrink:0; }
.menu a .ar { margin-left:auto; color:var(--ink-4); }
.menu a em { color:var(--brand-500); font-style:normal; font-weight:700; margin-left:6px; font-size:13px; }

/* ---------- 手机内弹层 ---------- */
.pmodal { position:absolute; inset:0; z-index:40; display:none; }
.pmodal.open { display:block; }
.pmodal__backdrop { position:absolute; inset:0; background:rgba(10,11,26,.5); backdrop-filter:blur(2px); animation:fade .3s; }
.pmodal__sheet { position:absolute; left:0; right:0; bottom:0; max-height:92%; background:var(--surface); border-radius:26px 26px 36px 36px; display:flex; flex-direction:column; animation:sheetUp .38s var(--ease-out); box-shadow:0 -10px 40px rgba(0,0,0,.2); }
@keyframes sheetUp { from { transform:translateY(100%); } to { transform:none; } }
.pmodal__grab { width:40px; height:4px; border-radius:3px; background:var(--line); margin:10px auto 4px; flex-shrink:0; }
.pmodal__scroll { overflow-y:auto; padding:10px 18px 14px; }
.pmodal__scroll::-webkit-scrollbar { width:0; }
.pmodal__scroll b { display:block; margin:16px 0 10px; }
.pmodal__bar { flex-shrink:0; display:flex; gap:10px; padding:12px 16px; border-top:1px solid var(--line); background:#fff; border-radius:0 0 36px 36px; }
.pmodal__bar .btn { padding:13px; }
.spec-rows { display:flex; flex-direction:column; gap:0; }
.spec-rows div { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line-2); font-size:12.5px; }
.spec-rows div span { color:var(--ink-4); }
.review { display:flex; gap:9px; align-items:flex-start; }
.review b { margin:0; font-size:12.5px; display:flex; align-items:center; gap:2px; }
.review b i { color:#F5B400; }
.review p { font-size:12px; color:var(--ink-3); margin-top:3px; }
.order-card { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:13px; margin-bottom:10px; box-shadow:var(--sh-xs); }
.order-card__top, .order-card__meta, .order-detail-head, .order-pay, .ledger-row, .setting-list div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.order-card__top b { font-size:12.5px; margin:0; font-family:var(--font-display); }
.order-card__items { font-size:12.5px; color:var(--ink-2); margin-top:7px; line-height:1.5; }
.order-card__meta { margin-top:6px; }
.order-card__meta span, .order-card__addr { font-size:11.5px; color:var(--ink-4); }
.order-card__meta strong, .order-pay strong { color:var(--price); font-weight:800; }
.order-card__addr { margin-top:6px; display:flex; align-items:center; gap:4px; }
.order-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; width:100%; }
.order-actions .btn { flex:1 1 calc(50% - 7px); min-width:116px; padding:9px 10px; font-size:12px; box-shadow:none; }
.pmodal__bar .order-actions { margin:0; }
.pmodal__bar .order-actions .btn { min-width:0; }
.order-detail-head { padding:14px; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
.order-detail-head span { font-size:11.5px; color:var(--ink-4); }
.order-detail-head b { margin:2px 0 0; font-size:15px; }
.order-progress { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:14px 0; }
.order-progress--single { grid-template-columns:1fr; }
.order-progress .op { position:relative; min-width:0; text-align:center; color:var(--ink-4); }
.order-progress .op i { width:18px; height:18px; border-radius:50%; background:var(--line); display:block; margin:0 auto 6px; }
.order-progress .op.on i { background:var(--brand-grad); box-shadow:var(--brand-glow); }
.order-progress .op b { margin:0; font-size:11.5px; white-space:nowrap; }
.order-progress .op span { display:block; font-size:10.5px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-section { border:1px solid var(--line); border-radius:14px; padding:12px; margin-bottom:10px; background:#fff; }
.order-section > b { margin:0 0 9px; font-size:13px; display:flex; align-items:center; gap:5px; }
.order-section p { font-size:12.5px; color:var(--ink-3); line-height:1.6; }
.order-section--warn { border-color:#FFE1D8; background:#FFF7F4; }
.order-item, .share-row, .learn-row { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line-2); }
.order-item:last-child, .share-row:last-child, .learn-row:last-child { border-bottom:none; }
.order-item__img { width:42px; height:42px; border-radius:11px; overflow:hidden; flex-shrink:0; background:var(--line-2); }
.order-item strong, .share-row strong { display:block; font-size:12.5px; line-height:1.35; }
.order-item span, .share-row span { display:block; font-size:11.5px; color:var(--ink-4); margin-top:2px; }
.my-post-row { padding:11px 0; border-bottom:1px solid var(--line-2); }
.my-post-row:last-child { border-bottom:none; }
.my-post-row__head { display:flex; align-items:center; gap:8px; min-width:0; }
.my-post-row__head strong { margin:0; flex:1; min-width:0; font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.my-post-row__head span { flex-shrink:0; font-size:11.5px; color:var(--ink-4); }
.my-post-row p { margin:7px 0 9px; font-size:12.5px; color:var(--ink-2); line-height:1.55; }
.my-post-row__products { display:grid; gap:7px; margin-bottom:9px; }
.my-post-row__products button { display:flex; align-items:center; gap:8px; min-width:0; width:100%; padding:7px; border:1px solid var(--line); border-radius:12px; background:var(--brand-50); text-align:left; }
.my-post-row__products img { width:38px; height:38px; border-radius:9px; object-fit:cover; flex-shrink:0; }
.my-post-row__products span { min-width:0; display:block; }
.my-post-row__products b { margin:0; display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.my-post-row__products em { display:block; margin-top:2px; color:var(--ink-4); font-size:11px; font-style:normal; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.my-post-row__metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.my-post-row__metrics span { min-width:0; display:flex; align-items:center; justify-content:center; gap:3px; padding:6px 4px; border-radius:10px; background:var(--surface-2); color:var(--ink-3); font-size:11px; white-space:nowrap; }
.order-pay { border-top:1px dashed var(--line); padding-top:12px; font-size:13px; color:var(--ink-3); }
.wallet-mini { border-radius:18px; padding:18px; color:#fff; background:var(--money-grad); box-shadow:0 16px 34px -14px rgba(16,185,129,.5); margin-bottom:12px; }
.wallet-mini span, .wallet-mini em { font-size:12px; opacity:.9; font-style:normal; }
.wallet-mini b { margin:4px 0; font-size:32px; }
.wallet-withdraw { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; margin:10px 0 14px; }
.wallet-withdraw .field { height:42px; padding:0 12px; }
.wallet-withdraw .btn { height:42px; padding:0 14px; font-size:12.5px; }
.withdraw-rules { border:1px solid #FFE4C4; background:#FFF7ED; color:#B45309; border-radius:14px; padding:10px 12px; margin-bottom:10px; }
.withdraw-rules b { margin:0 0 3px; font-size:12.5px; display:flex; align-items:center; gap:5px; }
.withdraw-rules span { font-size:11.5px; line-height:1.5; }
.account-card { border:1px solid var(--line); background:var(--surface-2); border-radius:12px; padding:11px; margin-bottom:10px; }
.account-card span, .account-card em { display:block; color:var(--ink-4); font-size:11.5px; font-style:normal; }
.account-card strong { display:block; font-size:15px; margin:3px 0; font-family:var(--font-display); }
.account-form { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.account-form .field { height:38px; padding:0 10px; }
.account-form .btn { grid-column:1 / -1; height:38px; font-size:12.5px; padding:0 12px; }
.ledger-row { padding:10px 0; border-bottom:1px solid var(--line-2); font-size:12.5px; }
.ledger-row:last-child { border-bottom:none; }
.ledger-row span em { display:block; color:var(--ink-4); font-size:11px; font-style:normal; margin-top:2px; }
.ledger-row strong { font-size:12.5px; }
.ledger-row strong.plus { color:var(--money-600); }
.withdraw-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line-2); font-size:12px; }
.withdraw-row:last-child { border-bottom:none; }
.withdraw-row div { min-width:0; }
.withdraw-row span, .withdraw-row em, .withdraw-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.withdraw-row span { color:var(--ink-2); font-weight:600; }
.withdraw-row em, .withdraw-row small { color:var(--ink-4); font-style:normal; margin-top:2px; }
.withdraw-row strong { font-size:12px; white-space:nowrap; }
.withdraw-row .btn { grid-column:1 / -1; height:34px; padding:0 10px; font-size:12px; }
.share-row .btn, .learn-row .btn { margin-left:auto; flex-shrink:0; padding:8px 10px; font-size:12px; }
.learn-row > div { width:32px; height:32px; border-radius:10px; display:grid; place-items:center; flex-shrink:0; background:var(--line-2); color:var(--ink-4); }
.learn-row > div.done { background:#E7FaF3; color:var(--money-600); }
.learn-row span { flex:1; min-width:0; }
.learn-row span b { margin:0; font-size:13px; }
.learn-row span em { display:block; font-style:normal; color:var(--ink-4); font-size:11.5px; margin-top:2px; }
.setting-list { border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; }
.setting-list div { padding:13px 14px; border-bottom:1px solid var(--line-2); font-size:13px; }
.setting-list div:last-child { border-bottom:none; }
.setting-list span { color:var(--ink-3); }
.setting-list b { margin:0; font-size:12.5px; color:var(--ink); text-align:right; }
.switch { width:42px; height:24px; border-radius:var(--r-full); background:var(--line); padding:3px; transition:background .2s; }
.switch i { display:block; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:var(--sh-xs); transition:transform .2s; }
.switch.on { background:var(--brand-500); }
.switch.on i { transform:translateX(18px); }
.activity-hero { border-radius:18px; padding:22px; color:#fff; background:var(--energy-grad); box-shadow:0 16px 34px -14px rgba(242,85,31,.55); margin-bottom:12px; }
.activity-hero b { margin:0 0 4px; font-size:22px; }
.activity-hero span { display:block; font-size:12.5px; opacity:.9; }
/* 入驻 */
.join-steps { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:6px 0 14px; }
.js { display:flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700; color:var(--ink-4); white-space:nowrap; }
.js.on { color:var(--brand-600); }
.js__n { width:20px; height:20px; border-radius:50%; background:var(--line-2); color:var(--ink-4); display:grid; place-items:center; font-size:11px; font-weight:800; }
.js.on .js__n { background:var(--brand-grad); color:#fff; }
.js__line { width:12px; height:2px; background:var(--line); }
.manager-benefits { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px; }
.manager-benefits div { padding:11px; border-radius:13px; background:#fff; border:1px solid var(--line); box-shadow:var(--sh-xs); }
.manager-benefits b { margin:0 0 4px; font-size:12.5px; color:var(--money-600); }
.manager-benefits span { font-size:11px; line-height:1.45; color:var(--ink-4); }
.manager-form { display:grid; grid-template-columns:78px 1fr; gap:11px; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--sh-xs); }
.manager-form__grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; min-width:0; }
.manager-form__full { grid-column:1 / -1; }
.manager-form__grid label span { display:block; font-size:11px; color:var(--ink-4); margin-bottom:4px; }
.manager-form__grid .field { height:38px; border-radius:10px; padding:0 10px; font-size:12px; }
.manager-form__grid textarea.field { height:auto; padding:10px; line-height:1.45; }
.manager-phone > span { display:block; font-size:11px; color:var(--ink-4); margin-bottom:4px; }
.manager-phone__row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.manager-phone__row .btn { height:38px; padding:0 12px; font-size:12px; white-space:nowrap; }
.id-upload > span { display:block; font-size:11px; color:var(--ink-4); margin-bottom:6px; }
.id-upload__grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.id-upload__card { min-height:66px; border:1px dashed var(--brand-300); border-radius:12px; background:var(--brand-50); color:var(--brand-600); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
.id-upload__card b { margin:0; font-size:12px; color:var(--ink-2); }
.id-upload__card em { font-size:10.5px; color:var(--ink-4); font-style:normal; }
.manager-tags { margin-bottom:12px; }
.manager-tags .chip { border-radius:10px; }
.guarantee-page { display:flex; align-items:flex-start; gap:8px; padding:11px 12px; border-radius:14px; background:#FFF7ED; border:1px solid #FED7AA; color:#B45309; }
.guarantee-page b { margin:0; font-size:12.5px; white-space:nowrap; }
.guarantee-page span { font-size:11.5px; line-height:1.5; }
.join-fields { display:flex; flex-direction:column; gap:8px; }
.jf { display:flex; justify-content:space-between; align-items:center; padding:13px 15px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; font-size:13px; }
.jf span { color:var(--ink-4); }
.jf b { margin:0; color:var(--brand-600); }
.deposit { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.dep { border:1.5px solid var(--line); border-radius:14px; padding:15px 8px; text-align:center; position:relative; transition:all .2s; }
.dep b { margin:0; font-size:20px; font-family:var(--font-display); color:var(--ink); }
.dep span { font-size:11px; color:var(--ink-4); }
.dep.on { border-color:var(--brand-500); background:var(--brand-50); box-shadow:var(--brand-glow); }
.dep i { position:absolute; top:-9px; left:50%; transform:translateX(-50%); font-size:10px; padding:2px 8px; }
.agree { display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--ink-3); margin-top:16px; }
.agree i { width:18px; height:18px; border-radius:5px; background:var(--brand-500); color:#fff; flex-shrink:0; }

/* ---------- 楼长 ERP 端组件 ---------- */
.erp-hero { border-radius:var(--r-lg); padding:18px; color:#fff; background:var(--money-grad); box-shadow:0 18px 40px -16px rgba(16,185,129,.5); margin-bottom:14px; }
.erp-hero h4 { font-size:18px; font-weight:800; }
.erp-hero p { font-size:12px; opacity:.9; margin-top:3px; }
.stat2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.stat-card { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:15px; box-shadow:var(--sh-xs); }
.stat-card span { font-size:11.5px; color:var(--ink-4); }
.stat-card b { font-size:24px; font-weight:800; font-family:var(--font-display); display:block; margin-top:4px; }
.stat-card b small { font-size:13px; }
.todo { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:6px 15px; box-shadow:var(--sh-xs); }
.todo .t { display:flex; align-items:center; gap:9px; padding:12px 0; border-bottom:1px solid var(--line-2); font-size:13px; }
.todo .t:last-child{border:none;}
.todo .t .em { font-size:17px; }
.todo .t a { margin-left:auto; font-size:12.5px; font-weight:700; }

/* 楼长工作台 / 库存补货：仅作用于 ERP 挂载点 */
#mount-erp .statusbar { height:calc(44px + env(safe-area-inset-top,0px)); padding-top:env(safe-area-inset-top,0px); }
#mount-erp .tabbar { height:calc(66px + env(safe-area-inset-bottom,0px)); padding-bottom:calc(8px + env(safe-area-inset-bottom,0px)); }
#mount-erp .app-nav a,
#mount-erp .app-nav .back { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:8px 10px; margin:-8px -10px -8px 0; border-radius:10px; }
#mount-erp .app-nav a:focus-visible,
#mount-erp .app-nav .back:focus-visible { outline:3px solid rgba(16,185,129,.28); outline-offset:2px; }
#mount-erp .app-nav a:active,
#mount-erp .app-nav .back:active { color:var(--money-600); background:#E7FaF3; }

#mount-erp .workbench,
#mount-erp .workbench-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-bottom:16px; }
#mount-erp .workbench-entry {
  min-height:76px; width:100%; padding:12px 13px; display:grid;
  grid-template-columns:42px minmax(0,1fr) auto; grid-template-rows:auto auto;
  align-items:center; column-gap:10px; border:1px solid var(--line); border-radius:var(--r-md);
  background:var(--surface); box-shadow:var(--sh-xs); color:var(--ink); text-align:left;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
#mount-erp .workbench-entry > [data-ic] { grid-row:1 / -1; width:42px; height:42px; padding:10px; border-radius:13px; background:#E7FaF3; color:var(--money-600); }
#mount-erp .workbench-entry > b, #mount-erp .workbench-entry > em { grid-column:2; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#mount-erp .workbench-entry > b { align-self:end; font-size:14px; }
#mount-erp .workbench-entry > em { align-self:start; color:var(--ink-4); font-size:11.5px; font-style:normal; }
#mount-erp .workbench-entry > .ar { grid-column:3; grid-row:1 / -1; color:var(--ink-4); font-size:20px; }
#mount-erp .workbench-entry:active { transform:scale(.985); }

#mount-erp .erp-toolbar { display:grid; gap:8px; margin-bottom:12px; min-width:0; }
#mount-erp .erp-toolbar .field, #mount-erp .erp-toolbar input, #mount-erp .erp-toolbar select, #mount-erp .erp-toolbar button { min-height:44px; min-width:0; }
#mount-erp .erp-toolbar .field, #mount-erp .erp-toolbar input, #mount-erp .erp-toolbar select { padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); font:inherit; }
#mount-erp .erp-toolbar .chips, #mount-erp .erp-toolbar .map-filters { margin:0; padding:2px 0; display:flex; flex-wrap:nowrap; gap:8px; overflow-x:auto; scrollbar-width:none; }
#mount-erp .erp-toolbar .chips::-webkit-scrollbar, #mount-erp .erp-toolbar .map-filters::-webkit-scrollbar { display:none; }
#mount-erp .erp-toolbar .chip, #mount-erp .erp-toolbar .map-filters button { flex:0 0 auto; padding:0 14px; white-space:nowrap; }
#mount-erp .erp-toolbar .low-stock-filter { min-height:44px; display:flex; align-items:center; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink-3); font-size:12px; white-space:nowrap; }
#mount-erp .erp-toolbar input[type="checkbox"] { min-width:44px; min-height:44px; margin:-1px 2px -1px -12px; accent-color:var(--money-500); }
#mount-erp .erp-toolbar .low-stock-filter:focus-within { outline:3px solid rgba(16,185,129,.28); outline-offset:2px; border-color:var(--money-500); }

#mount-erp .erp-product {
  min-width:0; padding:13px; margin-bottom:10px; display:grid;
  grid-template-columns:56px minmax(0,1fr); gap:10px 12px;
  border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); box-shadow:var(--sh-xs);
}
#mount-erp .erp-product img, #mount-erp .erp-product__image { width:56px; height:56px; border-radius:14px; object-fit:cover; background:var(--line-2); }
#mount-erp .erp-product__main { grid-column:1 / -1; min-width:0; display:flex; align-items:center; gap:12px; }
#mount-erp .erp-product__media { width:56px; height:56px; border-radius:14px; overflow:hidden; flex:0 0 56px; background:var(--line-2); }
#mount-erp .erp-product__media img { display:block; width:100%; height:100%; border-radius:0; object-fit:cover; }
#mount-erp .erp-product__summary, #mount-erp .erp-product__body, #mount-erp .erp-product__content { flex:1; min-width:0; }
#mount-erp .erp-product__summary { display:grid; gap:4px; }
#mount-erp .erp-product__body > b, #mount-erp .erp-product__content > b, #mount-erp .erp-product__title { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#mount-erp .erp-product__title { font-size:13.5px; font-weight:800; }
#mount-erp .erp-product__line { min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; }
#mount-erp .erp-product__price { color:var(--price); font-family:var(--font-display); font-size:15px; font-weight:800; }
#mount-erp .erp-product__meta { color:var(--ink-4); font-size:11.5px; overflow-wrap:anywhere; }
#mount-erp .erp-product__rank { flex:0 0 auto; min-width:54px; color:var(--brand-600); font-family:var(--font-display); font-size:12px; font-weight:800; white-space:nowrap; }
#mount-erp .erp-product__limit { color:var(--ink-4); font-size:11.5px; white-space:nowrap; }
#mount-erp .erp-product__actions { grid-column:1 / -1; min-width:0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 10px; }
#mount-erp .erp-product button, #mount-erp .erp-product input { min-height:44px; }

#mount-erp .qty-stepper { display:grid; grid-template-columns:44px 38px 44px; align-items:center; text-align:center; flex:0 0 auto; }
#mount-erp .qty-stepper button { min-width:44px; min-height:44px; padding:0; border:1px solid var(--line); border-radius:11px; background:var(--surface); box-shadow:none; }
#mount-erp .qty-stepper b, #mount-erp .qty-stepper span { min-width:0; font-size:13px; }

#mount-erp .erp-tabs { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
#mount-erp .erp-tabs button { min-height:44px; min-width:0; padding:8px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--ink-3); font-weight:700; }
#mount-erp .erp-tabs button.on, #mount-erp .erp-tabs button[aria-selected="true"] { color:#fff; border-color:var(--money-500); background:var(--money-500); }

/* 进销存语义钩子：复用现有 ERP 组件，不改变通用 card / btn / tag */
#mount-erp .inventory-card { min-width:0; }
#mount-erp .inventory-batch { min-width:0; overflow-wrap:anywhere; }
#mount-erp .inventory-qty button { min-width:44px; min-height:44px; }
#mount-erp .replenishment-tabs button { min-height:44px; }
#mount-erp .announcement-card { min-width:0; overflow-wrap:anywhere; }
#mount-erp .announcement-card p { white-space:pre-wrap; overflow-wrap:anywhere; }

#mount-erp .replenishment-card, #mount-erp .erp-detail-list, #mount-erp .pickup-form {
  min-width:0; padding:14px; margin-bottom:12px; border:1px solid var(--line);
  border-radius:var(--r-md); background:var(--surface); box-shadow:var(--sh-xs); overflow-wrap:anywhere;
}
#mount-erp .replenishment-card img { width:48px; height:48px; border-radius:12px; object-fit:cover; background:var(--line-2); }
#mount-erp .replenishment-card h3, #mount-erp .replenishment-card b, #mount-erp .erp-detail-list h3, #mount-erp .erp-detail-list b { min-width:0; overflow-wrap:anywhere; }
#mount-erp .erp-detail-list { display:grid; gap:10px; }
#mount-erp .erp-detail-list > * + * { padding-top:10px; border-top:1px solid var(--line-2); }
#mount-erp .pickup-form { display:grid; gap:12px; }
#mount-erp .pickup-form label { display:grid; gap:6px; color:var(--ink-3); font-size:12.5px; font-weight:600; }
#mount-erp .pickup-form input, #mount-erp .pickup-form select, #mount-erp .pickup-form button { min-height:44px; min-width:0; }
#mount-erp .pickup-form input, #mount-erp .pickup-form select { width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); color:var(--ink); font:inherit; }
#mount-erp .replenishment-card button, #mount-erp .replenishment-card input, #mount-erp .erp-detail-list button, #mount-erp .erp-detail-list input { min-height:44px; }

#mount-erp .btn,
#mount-erp .order-card__actions button { min-height:44px; }
#mount-erp .order-card__top { min-width:0; }
#mount-erp .cart-product__main { flex:1; min-width:0; }
#mount-erp .cart-product__copy { flex:1; min-width:0; }
#mount-erp .cart-product__copy b { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#mount-erp .cart-product__copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#mount-erp .order-card__top > strong { flex-shrink:0; }

#mount-erp .workbench-entry:focus-visible, #mount-erp .erp-toolbar :focus-visible, #mount-erp .erp-product :focus-visible,
#mount-erp .qty-stepper button:focus-visible, #mount-erp .erp-tabs button:focus-visible, #mount-erp .replenishment-card :focus-visible,
#mount-erp .erp-detail-list :focus-visible, #mount-erp .pickup-form :focus-visible, #mount-erp .btn:focus-visible, #mount-erp .order-card__actions button:focus-visible {
  outline:3px solid rgba(16,185,129,.28); outline-offset:2px; border-color:var(--money-500);
}
#mount-erp .btn:disabled, #mount-erp .order-card__actions button:disabled, #mount-erp .workbench-entry:disabled,
#mount-erp .erp-toolbar :disabled, #mount-erp .erp-product :disabled, #mount-erp .qty-stepper button:disabled,
#mount-erp .erp-tabs button:disabled, #mount-erp .replenishment-card :disabled, #mount-erp .erp-detail-list :disabled, #mount-erp .pickup-form :disabled,
#mount-erp [aria-busy="true"], #mount-erp .is-busy {
  cursor:not-allowed; opacity:.52; box-shadow:none; transform:none; pointer-events:none;
}
#mount-erp .btn:active:not(:disabled), #mount-erp .order-card__actions button:active:not(:disabled) { transform:scale(.98); }

@media (max-width: 480px) {
  #mount-erp .workbench, #mount-erp .workbench-grid { gap:9px; }
  #mount-erp .erp-product__main { gap:10px; }
  #mount-erp .erp-product__rank { min-width:auto; }
  #mount-erp .erp-product__actions > .btn, #mount-erp .replenishment-card__actions > .btn { flex:1 1 132px; padding-inline:12px; }
  #mount-erp .erp-detail-list, #mount-erp .pickup-form { padding:13px; }
}

/* 抢单卡 */
.notice { background:#FFF7ED; border:1px solid #FFE4C4; border-radius:12px; padding:10px 13px; font-size:12px; color:#B45309; font-weight:600; margin-bottom:12px; display:flex; align-items:center; gap:6px; }
.grab { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:14px; margin-bottom:12px; box-shadow:var(--sh-xs); }
.grab.hot { border-color:var(--brand-300); box-shadow:0 10px 26px -12px rgba(109,90,230,.3); }
.grab__top { display:flex; justify-content:space-between; align-items:center; margin-bottom:11px; }
.grab__id { font-size:12px; color:var(--ink-4); font-family:var(--font-display); font-weight:600; }
.grab__timer { font-size:12px; font-weight:700; color:var(--energy-600); display:flex; align-items:center; gap:4px; }
.grab__body { display:flex; gap:11px; margin-bottom:12px; }
.grab__img { width:52px; height:52px; border-radius:13px; display:grid; place-items:center; font-size:26px; flex-shrink:0; }
.grab__body b { font-size:14px; font-weight:700; }
.grab__body .meta { font-size:11.5px; color:var(--ink-4); margin-top:2px; }
.grab__body .earn { font-size:12px; color:var(--money-600); font-weight:700; margin-top:5px; }
.grab .btn { width:100%; padding:12px; }

.delivery-card__head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.delivery-card__head b { font-size:13px; font-weight:800; display:flex; align-items:center; gap:5px; }
.delivery-card__head span, .delivery-card__meta { font-size:11.5px; color:var(--ink-4); }
.delivery-card__meta { margin-bottom:10px; }
.mini-map { height:150px; border-radius:12px; overflow:hidden; background:var(--line-2); color:var(--ink-4); display:grid; place-items:center; font-size:12px; margin-bottom:10px; }
.mini-map--erp { height:170px; }
.delivery-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; align-items:center; }
.delivery-form .field { height:38px; padding:0 11px; margin:0; min-width:0; }
.delivery-form .btn { height:38px; padding:0 11px; font-size:12px; display:flex; align-items:center; gap:4px; white-space:nowrap; }
.location-sheet { height:86%; padding:0 16px 16px; }
.location-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:4px 0 10px; flex-shrink:0; }
.location-head h4 { font-size:18px; font-weight:800; margin:0 0 3px; display:flex; align-items:center; gap:5px; }
.location-head span { font-size:11.5px; color:var(--ink-4); }
.location-controls { display:grid; grid-template-columns:1.2fr .8fr; gap:8px; flex-shrink:0; margin-bottom:10px; }
.location-controls .field { height:40px; margin:0; }
.location-map { flex:1; min-height:360px; border-radius:14px; overflow:hidden; background:var(--line-2); color:var(--ink-4); display:grid; place-items:center; font-size:13px; }
.location-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:10px; flex-shrink:0; padding-top:12px; }
.location-actions .btn { justify-content:center; }
.saved-addresses, .map-filters { display:flex; gap:6px; overflow:auto; padding-top:8px; }
.saved-addresses button, .map-filters button { flex-shrink:0; border:1px solid var(--line); background:#fff; color:var(--ink-3); border-radius:9px; padding:7px 10px; font-size:11.5px; font-weight:700; }
.map-filters button.on { background:var(--brand-500); border-color:var(--brand-500); color:#fff; }
.map-order-panel { margin-top:10px; border:1px solid var(--line); border-radius:12px; padding:10px; display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fff; }
.map-order-panel div { min-width:0; }
.map-order-panel b { display:block; font-size:12.5px; }
.map-order-panel span { display:block; font-size:11.5px; color:var(--ink-4); margin-top:2px; }
.map-order-panel .btn { flex-shrink:0; padding:8px 12px; font-size:12px; }
.map-pin { background:transparent; border:none; }
.map-pin span { width:16px; height:16px; display:block; border-radius:50%; border:2px solid #fff; box-shadow:0 3px 10px rgba(0,0,0,.22); }
.map-pin--pending span { background:#F97316; }
.map-pin--moving span { background:var(--brand-500); }
.map-pin--arrival span { background:var(--money-500); }
.map-pin--after span { background:#EF4444; }
.map-pin--done span { background:#64748B; }
.map-popup-btn { margin-top:7px; border:none; border-radius:7px; padding:6px 10px; color:#fff; background:var(--brand-500); font-size:12px; font-weight:800; }
.admin-map { height:520px; border-radius:12px; overflow:hidden; background:var(--line-2); color:var(--ink-4); display:grid; place-items:center; font-size:13px; }

@media (max-width: 480px) {
  .delivery-form { grid-template-columns:1fr 1fr; }
  .delivery-form .btn { justify-content:center; }
  .location-map { min-height:430px; }
  .ad-task { grid-template-columns:46px 1fr; }
  .ad-task .btn { grid-column:1 / -1; width:100%; }
  .ad-task__action { grid-column:1 / -1; width:100%; }
  .ad-task__quota { width:100%; }
  .flow-line { grid-template-columns:repeat(2,1fr); }
}

/* 团队 */
.team-hero { border-radius:var(--r-lg); padding:20px; color:#fff; background:var(--brand-grad); box-shadow:var(--brand-glow); margin-bottom:14px; }
.team-hero .lbl { font-size:12px; opacity:.85; }
.team-hero .big { font-size:34px; font-weight:800; font-family:var(--font-display); margin:4px 0 14px; }
.team-hero .r3 { display:flex; justify-content:space-between; font-size:12px; }
.team-hero .r3 span { opacity:.8; }
.member { display:flex; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); margin-bottom:10px; box-shadow:var(--sh-xs); }
.member .a { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-size:20px; flex-shrink:0; }
.member b { font-size:14px; }
.member span { font-size:11.5px; color:var(--ink-4); display:block; }
.member a { margin-left:auto; font-size:12.5px; color:var(--brand-500); font-weight:700; }
.setting { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:6px 15px; box-shadow:var(--sh-xs); }
.setting .s { display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-bottom:1px solid var(--line-2); font-size:13px; }
.setting .s:last-child{border:none;}
.setting .s em { font-style:normal; font-weight:700; color:var(--brand-500); }

/* 收益 五维分润 */
.wallet-hero { border-radius:var(--r-lg); padding:22px; color:#fff; background:var(--money-grad); box-shadow:0 18px 40px -16px rgba(16,185,129,.5); margin-bottom:16px; }
.wallet-hero .lbl { font-size:12.5px; opacity:.9; }
.wallet-hero .amt { font-size:38px; font-weight:800; font-family:var(--font-display); margin:6px 0 16px; }
.wallet-hero .acts { display:flex; gap:10px; }
.wallet-hero .acts button { flex:1; padding:11px; border-radius:12px; font-size:13.5px; font-weight:700; }
.wallet-hero .acts .a1 { background:rgba(255,255,255,.16); color:#fff; border:1px solid rgba(255,255,255,.3); }
.wallet-hero .acts .a2 { background:#fff; color:var(--money-600); }
.credit-hero { border-radius:var(--r-lg); padding:22px; color:#fff; background:var(--brand-grad); box-shadow:var(--brand-glow); margin-bottom:12px; }
.credit-hero span, .credit-hero em { display:block; font-style:normal; font-size:12.5px; opacity:.9; }
.credit-hero b { display:block; font-size:42px; line-height:1.05; margin:5px 0; }
.credit-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:12px; }
.credit-grid div { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:13px; box-shadow:var(--sh-xs); }
.credit-grid span { display:block; font-size:11.5px; color:var(--ink-4); }
.credit-grid b { display:block; font-size:15px; margin-top:4px; }
.credit-list { padding:4px 14px; }
.credit-list p { font-size:12.5px; color:var(--ink-4); padding:14px 0; }
.credit-row { display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid var(--line-2); }
.credit-row:last-child { border-bottom:none; }
.credit-row div { min-width:0; flex:1; }
.credit-row b { display:block; font-size:13px; }
.credit-row span { display:block; color:var(--ink-4); font-size:11.5px; margin-top:2px; }
.credit-row strong { font-family:var(--font-display); font-weight:800; }
.credit-row strong.plus { color:var(--money-600); }
.credit-row strong.minus { color:var(--price); }
.credit-row em { color:var(--money-600); font-style:normal; font-size:12px; font-weight:700; }
.credit-row .btn { flex-shrink:0; padding:8px 12px; font-size:12px; }
.compose { margin-bottom:16px; }
.compose h5 { font-size:14px; margin-bottom:12px; display:flex; align-items:center; gap:6px; }
.compose__bar { height:16px; border-radius:8px; overflow:hidden; display:flex; margin-bottom:14px; }
.compose__bar i { height:100%; }
.compose__legend { display:flex; flex-direction:column; gap:10px; }
.compose__legend .l { display:flex; align-items:center; gap:8px; font-size:12.5px; }
.compose__legend .l b { margin-left:auto; }
.compose__legend .l .dot { width:9px; height:9px; border-radius:3px; flex-shrink:0; }
.compose__legend .l b { font-weight:700; }
.income .i { display:flex; align-items:flex-start; gap:10px; padding:14px 0; border-bottom:1px solid var(--line-2); }
.income .i:last-child{border:none;}
.income .i .t b { font-size:13.5px; display:block; }
.income .i .t span { font-size:11px; color:var(--ink-4); }
.income .i .v { margin-left:auto; font-weight:800; font-family:var(--font-display); font-size:15px; }
.income .i .v.plus { color:var(--money-600); }
.income .i .v.minus { color:var(--ink-3); }

/* ============================================================
   运营管理后台（桌面端）
   ============================================================ */
/* 后台子导航 */
.subnav { display:flex; gap:8px; margin-bottom:24px; border-bottom:1px solid var(--line); padding-bottom:0; flex-wrap:wrap; }
.subnav__item { display:inline-flex; align-items:center; gap:8px; padding:12px 18px; font-size:14px; font-weight:600; color:var(--ink-3); border-bottom:2.5px solid transparent; margin-bottom:-1px; transition:all .2s; }
.subnav__item:hover { color:var(--ink); }
.subnav__item.on { color:var(--brand-600); border-bottom-color:var(--brand-500); }
.admin-sec { display:none; animation:fade .4s var(--ease-out); }
.admin-sec.active { display:block; }
.filter-chips { display:inline-flex; gap:7px; flex-wrap:wrap; }
.fc { padding:7px 13px; border-radius:var(--r-full); font-size:12.5px; font-weight:600; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-3); transition:all .2s; }
.fc:hover { border-color:var(--brand-300); }
.fc.on { background:var(--brand-500); color:#fff; border-color:var(--brand-500); }
.stat-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
.stat-strip__item { padding:18px 22px; }
.stat-strip__item span { font-size:13px; color:var(--ink-3); }
.stat-strip__item b { font-size:28px; font-weight:800; display:block; margin-top:4px; }
.flow-mon { display:flex; align-items:center; gap:12px; padding:11px 4px; border-bottom:1px solid var(--line-2); }
.flow-mon:last-child { border:none; }
.flow-mon__n { width:24px; height:24px; border-radius:7px; background:var(--brand-grad); color:#fff; display:grid; place-items:center; font-size:12px; font-weight:800; font-family:var(--font-display); flex-shrink:0; }
.flow-mon__t { font-size:13.5px; font-weight:500; }
.flow-mon__v { margin-left:auto; font-weight:700; color:var(--ink-2); }

.kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:24px; }
.kpi { padding:22px; position:relative; overflow:hidden; }
.kpi__ic { width:46px; height:46px; border-radius:13px; display:grid; place-items:center; font-size:22px; margin-bottom:14px; }
.kpi .lbl { font-size:13px; color:var(--ink-3); font-weight:500; }
.kpi .val { font-size:32px; font-weight:800; font-family:var(--font-display); letter-spacing:-.02em; margin-top:4px; }
.kpi .trend { font-size:12.5px; font-weight:700; margin-top:8px; display:inline-flex; align-items:center; gap:4px; }
.kpi .trend.up { color:var(--money-600); }
.kpi .trend.down { color:var(--price); }

.dash-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:18px; margin-bottom:24px; }
.panel { padding:24px; }
.panel__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.panel__head h3 { font-size:17px; font-weight:800; }
.panel__head .tabs { display:flex; gap:6px; }
.panel__head .tabs button { padding:6px 13px; border-radius:9px; font-size:12.5px; font-weight:600; color:var(--ink-3); }
.panel__head .tabs button.on { background:var(--brand-50); color:var(--brand-600); }

/* 柱状图 */
.bars { display:flex; align-items:flex-end; gap:14px; height:220px; padding-top:10px; }
.bar-col { flex:1; display:flex; flex-direction:column; align-items:center; gap:9px; height:100%; justify-content:flex-end; }
.bar-col .bar { width:100%; max-width:44px; border-radius:9px 9px 4px 4px; background:var(--brand-grad); position:relative; transition:height 1s var(--ease-out); box-shadow:0 8px 18px -8px rgba(109,90,230,.5); }
.bar-col .bar span { position:absolute; top:-22px; left:50%; transform:translateX(-50%); font-size:11px; font-weight:700; color:var(--brand-600); font-family:var(--font-display); white-space:nowrap; }
.bar-col > em { font-size:12px; color:var(--ink-4); font-style:normal; }

/* 甜甜圈（分润） */
.donut-wrap { display:flex; flex-direction:column; align-items:center; gap:18px; }
.donut { width:180px; height:180px; border-radius:50%; position:relative; }
.donut::after { content:''; position:absolute; inset:26px; background:#fff; border-radius:50%; box-shadow:inset 0 0 0 1px var(--line); }
.donut__center { position:absolute; inset:0; display:grid; place-items:center; text-align:center; z-index:2; }
.donut__center b { font-size:26px; font-weight:800; font-family:var(--font-display); display:block; line-height:1.1; }
.donut__center span { font-size:11px; color:var(--ink-4); display:block; }
.legend { width:100%; display:flex; flex-direction:column; gap:11px; }
.legend .l { display:flex; align-items:center; gap:9px; font-size:13px; }
.legend .l .dot { width:11px; height:11px; border-radius:4px; }
.legend .l .pv { margin-left:auto; font-weight:700; font-family:var(--font-display); }

/* 表格 */
.table-wrap { padding:24px; }
.table-tools { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; gap:12px; }
.search { flex:1; max-width:320px; display:flex; align-items:center; gap:9px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:10px 14px; color:var(--ink-4); font-size:13.5px; }
.search input { border:none; background:none; outline:none; flex:1; font-family:inherit; font-size:13.5px; color:var(--ink); }
table { width:100%; border-collapse:collapse; }
thead th { text-align:left; font-size:12px; color:var(--ink-4); font-weight:600; padding:0 16px 14px; border-bottom:1px solid var(--line); letter-spacing:.02em; }
tbody td { padding:15px 16px; border-bottom:1px solid var(--line-2); font-size:13.5px; }
tbody tr { transition:background .15s; }
tbody tr:hover { background:var(--surface-2); }
.u-cell { display:flex; align-items:center; gap:11px; }
.u-cell .a { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; font-size:17px; flex-shrink:0; }
.u-cell b { font-size:13.5px; }
.u-cell span { font-size:11.5px; color:var(--ink-4); display:block; }
.tag { display:inline-flex; padding:4px 11px; border-radius:var(--r-full); font-size:11.5px; font-weight:700; }
.tag.ok { background:#E7FaF3; color:var(--money-600); }
.tag.wait { background:#FFF7ED; color:#B45309; }
.tag.off { background:var(--line-2); color:var(--ink-4); }
.tag.lz { background:var(--brand-50); color:var(--brand-600); }
.act-link { color:var(--brand-500); font-weight:600; font-size:13px; margin-right:14px; }
.act-link.danger { color:var(--price); }

.two-col { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rank .r { display:flex; align-items:center; gap:13px; padding:13px 0; border-bottom:1px solid var(--line-2); }
.rank .r:last-child{border:none;}
.rank .r .n { width:26px; height:26px; border-radius:8px; display:grid; place-items:center; font-weight:800; font-size:13px; font-family:var(--font-display); background:var(--line-2); color:var(--ink-3); flex-shrink:0; }
.rank .r:nth-child(1) .n { background:var(--brand-grad); color:#fff; }
.rank .r:nth-child(2) .n { background:#FFF0EA; color:var(--energy-600); }
.rank .r:nth-child(3) .n { background:#E7FaF3; color:var(--money-600); }
.rank .r b { font-size:13.5px; }
.rank .r span { font-size:11.5px; color:var(--ink-4); display:block; }
.rank .r .v { margin-left:auto; font-weight:800; font-family:var(--font-display); font-size:14px; }
.rank .r .track { margin-left:auto; width:120px; }
.rank .r .track .bg { height:7px; border-radius:4px; background:var(--line-2); overflow:hidden; }
.rank .r .track .bg i { display:block; height:100%; background:var(--brand-grad); border-radius:4px; }

.flow { display:flex; flex-wrap:wrap; gap:0; align-items:center; margin-top:4px; }
.flow .step { display:flex; align-items:center; gap:8px; padding:11px 16px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; font-size:13px; font-weight:600; margin:6px 0; }
.flow .step .n { width:22px; height:22px; border-radius:7px; background:var(--brand-grad); color:#fff; display:grid; place-items:center; font-size:12px; font-weight:800; }
.flow .arrow { color:var(--brand-300); font-size:18px; margin:0 8px; }

/* 通用工具 */
.mb-lg { margin-bottom:32px; }
.mt-md { margin-top:20px; }
.text-c { text-align:center; }
.divider { height:1px; background:var(--line); margin:24px 0; border:none; }

/* 自定义滚动条 */
.canvas { scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#D8DAE8; border-radius:8px; border:3px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background:#C2C5D8; }
::-webkit-scrollbar-track { background:transparent; }

/* 响应式 */
@media (max-width: 1180px) {
  .end-grid { grid-template-columns:1fr; }
  .split-grid { grid-template-columns:1fr; }
}
@media (max-width: 1080px) {
  .rail { width:76px; padding:20px 12px; }
  .rail__name, .rail__group, .rail__foot, .rail__item span { display:none; }
  .rail__item { justify-content:center; padding:12px; }
  .rail__brand { justify-content:center; padding:4px 0 20px; }
  .kpis, .stat-strip { grid-template-columns:repeat(2,1fr); }
  .dash-grid, .two-col { grid-template-columns:1fr; }
}
@media (max-width: 720px) {
  .wrap { padding:18px; }
  .hero, .hero--cover { padding:38px 24px; }
  .hero h1 { font-size:34px; }
  .hero__stats { gap:24px; flex-wrap:wrap; }
  .hero__cta { flex-direction:column; }
  .kpis, .stat-strip { grid-template-columns:1fr; }
  .section-head h2 { font-size:24px; }
  .topbar { padding:0 18px; }
  .subnav { overflow-x:auto; flex-wrap:nowrap; }
  .subnav__item { white-space:nowrap; }
  .cta-band { flex-direction:column; align-items:flex-start; }
  .table-wrap { overflow-x:auto; }
  table { min-width:640px; }
  .phone, .phone__frame { width:min(340px,86vw); }
}

/* ---------- 6. 独立页顶栏 + 总览新板块（角色/AI/分润） ---------- */
a.btn, a.end-card, a.rail__item, a.role-card__go, a.backlink { text-decoration:none; }
a.end-card, a.rail__item { color:inherit; }
.rail__item { text-decoration:none; }
.rail__ext { margin-left:auto; opacity:0; transform:translateX(-4px); transition:all .2s; color:#fff; display:inline-flex; }
a.rail__item:hover .rail__ext { opacity:.85; transform:none; }

/* 独立页顶栏 */
.shell--solo .canvas { width:100%; }
.solo-left { display:flex; align-items:center; gap:16px; }
.backlink { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:var(--r-full); background:var(--surface-2); border:1px solid var(--line); color:var(--ink-2); font-size:13.5px; font-weight:600; transition:all .2s var(--ease); }
.backlink:hover { border-color:var(--brand-300); color:var(--brand-600); background:var(--brand-50); }
.solo-brand { display:flex; align-items:center; gap:11px; }
.solo-logo { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; box-shadow:var(--sh-md); }
.solo-brand b { font-size:16px; font-weight:800; letter-spacing:-.01em; display:block; line-height:1.15; }
.solo-brand small { font-size:11.5px; color:var(--ink-4); }
@media (max-width:720px){ .solo-brand small { display:none; } .solo-brand b { font-size:14px; } }

/* 两大核心角色 */
.role-cards { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.role-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; box-shadow:var(--sh-sm); position:relative; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.role-card::before { content:''; position:absolute; inset:0 0 auto; height:5px; background:var(--brand-grad); }
.role-card--manager::before { background:var(--money-grad); }
.role-card:hover { transform:translateY(-5px); box-shadow:var(--sh-lg); }
.role-card__head { display:flex; align-items:center; gap:15px; margin-bottom:16px; }
.role-card__ic { width:52px; height:52px; border-radius:15px; display:grid; place-items:center; color:#fff; box-shadow:var(--sh-md); flex-shrink:0; }
.role-card__tag { font-size:11.5px; font-weight:700; letter-spacing:.05em; color:var(--brand-600); background:var(--brand-50); padding:3px 10px; border-radius:var(--r-full); display:inline-block; }
.role-card__tag--money { color:var(--money-600); background:#E7FaF3; }
.role-card__head h3 { font-size:23px; font-weight:800; margin-top:7px; letter-spacing:-.01em; }
.role-card > p { color:var(--ink-3); font-size:14px; line-height:1.65; margin-bottom:16px; }
.role-card > p b { color:var(--ink); }
.cap-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.cap { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:600; color:var(--brand-600); background:var(--brand-50); padding:6px 12px; border-radius:var(--r-full); }
.cap i { color:var(--brand-500); }
.cap--money { color:var(--money-600); background:#E7FaF3; }
.cap--money i { color:var(--money-500); }
.rights { display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.right { display:flex; align-items:center; gap:14px; padding:13px 16px; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; }
.right b { font-size:22px; font-weight:800; font-family:var(--font-display); min-width:70px; color:var(--ink); }
.right span { font-size:14px; font-weight:700; flex:1; }
.right small { font-size:11.5px; color:var(--ink-4); }
.right--plus { background:linear-gradient(120deg,#E7FaF3,#F4FBF7); border-color:#BFE9D6; }
.right--plus b { color:var(--money-600); }
.right--base { background:var(--brand-50); border-color:var(--brand-100); }
.right--base b { color:var(--brand-500); font-size:16px; }
.role-card__go { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:14px; color:var(--brand-600); }
.role-card__go--money { color:var(--money-600); }
.role-card__go i { transition:transform .25s; }
.role-card:hover .role-card__go i { transform:translateX(4px); }

/* AI 营销创新 */
.ai-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ai-card { padding:24px; }
.ai-card__ic { width:50px; height:50px; border-radius:14px; display:grid; place-items:center; color:#fff; box-shadow:var(--sh-md); margin-bottom:16px; }
.ai-card h4 { font-size:16.5px; font-weight:800; margin-bottom:9px; letter-spacing:-.01em; }
.ai-card p { color:var(--ink-3); font-size:13.5px; line-height:1.65; }

/* 分润结构 · 两套权益分组 */
.tier { margin-bottom:16px; }
.tier__label { font-size:12.5px; font-weight:700; color:var(--ink-3); margin-bottom:9px; padding-left:2px; letter-spacing:.02em; }
.tier--money .tier__label { color:var(--money-600); }
.tier .role-row { margin-bottom:10px; }
.tier .role-row:last-child { margin-bottom:0; }
.tier .role-row__pct { font-size:20px; }
.calc__profit-sub { font-size:12px; color:var(--ink-4); font-weight:500; margin-left:6px; }

/* 分享者「我的」三大权益条 */
.rights-mini { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:14px; }
.rm { background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:11px 8px; text-align:center; }
.rm b { display:block; font-size:19px; font-weight:800; font-family:var(--font-display); color:var(--brand-600); }
.rm span { font-size:11px; color:var(--ink-4); }

@media (max-width:900px){ .role-cards, .ai-grid { grid-template-columns:1fr; } }

/* ================================================================
   原生独立端页面 —— 移动端全屏 App / 桌面端原生控制台
   （取代旧的"桌面 shell 套手机原型框"展示形态）
   ================================================================ */
/* —— 移动 App：手机上占满视口，桌面上居中为移动列宽（非装饰边框） —— */
body.app-native { background:linear-gradient(165deg,#ECEEF6,#E4E7F1); min-height:100dvh; overflow:hidden; }
.screen--native {
  position:fixed; left:0; right:0; top:0; bottom:0; margin:0 auto;
  width:100%; max-width:100%; height:auto;
  background:var(--bg); overflow:hidden; border-radius:0;
  display:flex; flex-direction:column;
}
@media (min-width:520px){
  body.app-native { display:grid; place-items:center; }
  .screen--native {
    position:relative; left:auto; right:auto; top:auto; bottom:auto; margin:0;
    width:430px; height:min(92dvh,904px);
    border-radius:34px; box-shadow:0 44px 90px -30px rgba(24,22,60,.42), 0 0 0 1px var(--line);
  }
}

/* —— 运营后台：原生桌面控制台 —— */
body.admin-native { background:var(--bg); }
.acs { min-height:100dvh; display:flex; flex-direction:column; }
.acs__top {
  position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:18px;
  padding:11px 24px; background:rgba(255,255,255,.9); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line); flex-wrap:wrap;
}
.acs__brand { display:flex; align-items:center; gap:12px; }
.acs__logo { width:40px; height:40px; border-radius:12px; display:grid; place-items:center; box-shadow:var(--sh-md); color:#fff; }
.acs__brand b { font-size:16.5px; font-weight:800; line-height:1.12; letter-spacing:-.01em; display:block; }
.acs__brand small { font-size:11px; color:var(--ink-4); }
.acs__nav { display:flex; gap:4px; overflow-x:auto; margin-left:6px; }
.acs__nav .subnav__item { border-bottom:none; margin-bottom:0; padding:9px 15px; border-radius:10px; white-space:nowrap; }
.acs__nav .subnav__item.on { background:var(--brand-50); color:var(--brand-600); }
.acs__user { margin-left:auto; display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink-3); font-weight:600; }
.acs__main { flex:1; width:100%; max-width:1320px; margin:0 auto; padding:24px 26px 44px; }
@media (max-width:760px){ .acs__nav { order:3; width:100%; } .acs__user { display:none; } .acs__main { padding:18px 16px 36px; } }

/* ================= 全局 Toast ================= */
.toast-box { position:fixed; left:50%; bottom:96px; transform:translateX(-50%); z-index:9999; display:flex; flex-direction:column; gap:8px; align-items:center; pointer-events:none; }
.toast { background:rgba(24,22,45,.94); color:#fff; font-size:13.5px; font-weight:600; padding:11px 20px; border-radius:var(--r-full); box-shadow:0 12px 30px -8px rgba(0,0,0,.4); opacity:0; transform:translateY(12px) scale(.96); transition:all .28s var(--ease-out); max-width:80vw; text-align:center; }
.toast.show { opacity:1; transform:translateY(0) scale(1); }
.toast--ok { background:linear-gradient(120deg,#10B981,#059669); }
.toast--warn { background:linear-gradient(120deg,#F59E0B,#D97706); }
/* 购物车角标 */
.tabbar__item { position:relative; }
.tab-badge { position:absolute; top:6px; left:calc(50% + 6px); min-width:16px; height:16px; padding:0 4px; border-radius:9px; background:var(--price,#F5533D); color:#fff; font-size:10px; font-weight:800; display:grid; place-items:center; line-height:1; box-shadow:0 2px 6px rgba(245,83,61,.5); }
/* 空状态 */
.empty { text-align:center; padding:60px 20px; color:var(--ink-4); }
.empty .em-ic { width:76px; height:76px; border-radius:50%; background:var(--surface-2); display:grid; place-items:center; margin:0 auto 14px; color:var(--ink-5,#B8BAC8); }
.empty b { display:block; font-size:15px; color:var(--ink-2); margin-bottom:4px; }
/* 帖子点赞激活 */
.post__foot .liked { color:var(--price,#F5533D); font-weight:700; }

/* ================= 运营后台 · 弹窗表单 ================= */
.admin-modal { position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; }
.admin-modal.open { display:flex; }
.admin-modal__backdrop { position:absolute; inset:0; background:rgba(10,11,26,.5); backdrop-filter:blur(2px); }
.admin-modal__card { position:relative; width:min(460px,92vw); background:var(--surface); border-radius:20px; box-shadow:var(--sh-xl); padding:24px; animation:sheetUp .3s var(--ease-out); }
.admin-modal__card h3 { font-size:18px; font-weight:800; margin-bottom:18px; display:flex; align-items:center; gap:8px; }
.announcement-body { white-space:pre-wrap; overflow-wrap:anywhere; }
.form-row { margin-bottom:13px; }
.form-row label { display:block; font-size:12.5px; color:var(--ink-3); font-weight:600; margin-bottom:6px; }
.form-row input, .form-row select, .form-row textarea { width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:13.5px; font-family:inherit; background:var(--surface-2); color:var(--ink); outline:none; transition:border-color .2s; }
.form-row textarea { min-height:160px; resize:vertical; line-height:1.5; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color:var(--brand-400,#A99BF5); }
.form-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.admin-modal__card--product { width:min(640px,94vw); max-height:min(88vh,calc(100dvh - 48px)); overflow-y:auto; }
.goods-media { margin:13px 0; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.goods-media__head { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-bottom:10px; }
.goods-media__head b { font-size:13px; }
.goods-media__head span { color:var(--ink-4); font-size:11.5px; }
.goods-media__row { display:grid; grid-template-columns:96px 1fr; gap:12px; align-items:center; }
.goods-media__preview { width:96px; height:96px; border-radius:12px; overflow:hidden; display:grid; place-items:center; background:var(--surface); color:var(--ink-4); font-size:12px; border:1px solid var(--line); }
.goods-media__preview img, .goods-detail-list img { width:100%; height:100%; object-fit:cover; display:block; }
.goods-media__tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; }
.goods-media__tools input[type="file"] { flex:1 1 220px; min-width:0; font-size:12px; }
.goods-detail-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:10px; min-height:34px; align-items:start; color:var(--ink-4); font-size:12px; }
.goods-detail-list__item { display:grid; gap:6px; }
.goods-detail-list__item img { aspect-ratio:1; border-radius:10px; border:1px solid var(--line); background:var(--surface); }
.goods-detail-list__item .act-link { justify-content:center; min-height:30px; font-size:12px; }
.product-detail--fullscreen .pmodal__sheet { inset:0; width:100%; height:100%; max-height:none; border-radius:0; }
.product-detail--fullscreen .pmodal__scroll { padding:0 18px 96px; }
.product-detail__hero { position:relative; height:320px; margin:0 -18px 16px; overflow:hidden; background:var(--line-2); }
.product-detail__hero img { width:100%; height:100%; object-fit:cover; display:block; }
.product-detail__hero button { position:absolute; left:14px; top:calc(14px + env(safe-area-inset-top,0px)); width:38px; height:38px; border:0; border-radius:50%; display:grid; place-items:center; color:#fff; background:rgba(18,20,36,.55); backdrop-filter:blur(10px); transform:rotate(180deg); }
.product-detail__gallery { display:grid; gap:10px; margin:10px 0 18px; }
.product-detail__image { width:100%; overflow:hidden; border-radius:12px; background:var(--line-2); }
.product-detail__image img { width:100%; height:auto; display:block; }
.product-detail__fallback { display:grid; gap:10px; padding:10px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.product-detail__fallback img { width:100%; max-height:280px; object-fit:cover; border-radius:10px; }
.product-detail__fallback p { margin:0; color:var(--ink-3); font-size:13px; line-height:1.6; }

/* 运营后台供应链：不影响消费者端与楼长 ERP */
body.admin-native .supply-chain { display:flex; flex-direction:column; gap:18px; min-width:0; }
body.admin-native .supply-chain .table-wrap { overflow-x:auto; }
body.admin-native .supply-chain table { min-width:980px; }
body.admin-native .supply-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
body.admin-native .supply-toolbar label { display:flex; align-items:center; gap:6px; color:var(--ink-3); font-size:12.5px; font-weight:600; }
body.admin-native .supply-toolbar select { min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); font:inherit; }
body.admin-native .supply-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
body.admin-native .supply-status { display:inline-flex; padding:4px 9px; border-radius:999px; }
body.admin-native .settlement-summary { display:grid; grid-template-columns:auto minmax(0,2fr) minmax(90px,1fr) minmax(120px,1fr); gap:10px; min-width:0; padding:10px 0; overflow-wrap:anywhere; }
body.admin-native .settlement-summary + .settlement-summary { border-top:1px solid var(--line-2); }
body.admin-native .settlement-summary small { display:block; overflow-wrap:anywhere; }
body.admin-native .supply-sub { display:block; margin-top:4px; color:var(--ink-4); font-size:12px; overflow-wrap:anywhere; }
body.admin-native .supply-row--expired { background:#FFF1F0; }
body.admin-native .supply-row--expiring { background:#FFF8E0; }
body.admin-native .supply-row--exception { box-shadow:inset 3px 0 0 var(--price); }
body.admin-native .supply-detail { padding:16px; overflow-x:auto; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; }
body.admin-native .supply-detail table { min-width:720px; }
body.admin-native [data-supply-modals] .admin-modal__card { width:min(560px,94vw); max-height:min(88vh,calc(100dvh - 48px)); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
body.admin-native [data-supply-modals] .admin-modal__card--wide { width:min(880px,94vw); }
body.admin-native [data-supply-modals] .form-grid2 > label { min-width:0; min-height:44px; display:grid; align-content:start; gap:6px; color:var(--ink-3); font-size:12.5px; font-weight:600; }
body.admin-native [data-supply-modals] .form-grid2 input,
body.admin-native [data-supply-modals] .form-grid2 select,
body.admin-native [data-supply-modals] .form-grid2 textarea { width:100%; min-width:0; min-height:44px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font:inherit; background:var(--surface-2); color:var(--ink); outline:none; transition:border-color .2s; }
body.admin-native [data-supply-modals] .form-grid2 input:focus,
body.admin-native [data-supply-modals] .form-grid2 select:focus,
body.admin-native [data-supply-modals] .form-grid2 textarea:focus,
body.admin-native [data-supply-modals] .form-row textarea:focus { border-color:var(--brand-400,#A99BF5); }
body.admin-native [data-supply-modals] .form-row textarea { width:100%; min-height:120px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font:inherit; background:var(--surface-2); color:var(--ink); outline:none; resize:vertical; }
body.admin-native [data-supply-modals] .form-grid2 input[type="checkbox"],
body.admin-native [data-supply-modals] .form-grid2 input[type="radio"] { width:auto; min-width:18px; min-height:0; height:18px; padding:0; accent-color:var(--brand-500); }
body.admin-native .form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
body.admin-native .form-error { min-height:18px; margin:-8px 0 12px; color:var(--price); font-size:12px; }
body.admin-native .supply-chain .btn,
body.admin-native .supply-chain .act-link { min-height:44px; }
body.admin-native .supply-chain .act-link { display:inline-flex; align-items:center; padding:8px 4px; }

#mount-erp .manager-mechanism { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#mount-erp .manager-mechanism .stat-card { min-height:74px; }
#mount-erp .manager-mechanism .btn { min-height:36px; padding:8px 10px; font-size:12px; }
#mount-erp .manager-rule-list { display:grid; gap:8px; font-size:12.5px; color:var(--ink-3); }
.admin-console .manager-quota-cell { display:grid; gap:3px; font-size:12px; color:var(--ink-4); min-width:126px; }
.admin-console .manager-quota-cell b { color:var(--ink-1); }

@media (max-width:760px) {
  body.admin-native .supply-grid,
  body.admin-native .settlement-summary { grid-template-columns:1fr; }
  body.admin-native .supply-chain .table-tools,
  body.admin-native .supply-toolbar { align-items:stretch; flex-direction:column; }
  body.admin-native .supply-chain .search,
  body.admin-native .supply-chain .search input,
  body.admin-native .supply-chain .supply-toolbar > .btn { width:100%; max-width:none; }
  body.admin-native .supply-toolbar label { width:100%; justify-content:space-between; }
  body.admin-native .supply-toolbar select { flex:1; min-width:0; }
  body.admin-native [data-supply-modals] .admin-modal { padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px)); }
  body.admin-native [data-supply-modals] .admin-modal__card { width:100%; max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px); padding:18px; }
  body.admin-native [data-supply-modals] .admin-modal__card--wide { width:100%; }
  body.admin-native [data-supply-modals] .form-grid2 { grid-template-columns:1fr; }
  body.admin-native [data-supply-modals] .form-actions { align-items:stretch; flex-direction:column-reverse; }
  body.admin-native [data-supply-modals] .form-actions .btn { width:100%; min-height:44px; }
}
