/* =============================================================
   花舍山居 · 专属冰雪主题 UI（北国雪舍 · 冰川晨光）
   Ice & Snow Theme Layer —— 后台 / 手机端共用
   依赖：base.css / components.css / admin.css / mobile.css 之后加载
   全部资源本地化（雪纹与冰晶均为内联 SVG，无远程引用）
   北京心商科技有限责任公司
   ============================================================= */

/* ------------------------------------------------------------
   一、冰雪设计令牌
   ------------------------------------------------------------ */
:root {
  /* 雪面（由浅到深） */
  --snow-1: #FFFFFF;
  --snow-2: #F8FCFD;
  --snow-3: #EDF6FA;
  /* 冰色（由浅到深） */
  --ice-0: #F0F8FB;
  --ice-1: #E2F1F8;
  --ice-2: #C9E5F0;
  --ice-3: #9FD1E3;
  /* 冰川青：冰雪主题第二主色 */
  --glacier: #3F8FB4;
  --glacier-2: #5FA8C4;
  --glacier-3: #7FC0D8;
  /* 极光三色（松绿 / 冰青 / 极光紫） */
  --aurora-a: #5FA8C4;
  --aurora-b: #7C6FA8;
  --aurora-c: #2E8B6F;
  /* 霜玻璃与冰线 */
  --frost-line: rgba(143, 196, 216, .46);
  --frost-line-2: rgba(143, 196, 216, .24);
  --frost-hi: rgba(255, 255, 255, .85);
  --glass: rgba(255, 255, 255, .72);
  /* 冰雪阴影与焦点环 */
  --ice-sh: 0 14px 34px -20px rgba(31, 86, 110, .5);
  --ice-sh-hover: 0 20px 46px -20px rgba(63, 143, 180, .55);
  --focus-ring: rgba(63, 143, 180, .18);
  /* 极光渐变（可复用） */
  --aurora-grad: linear-gradient(90deg, var(--aurora-c), var(--aurora-a) 42%, var(--aurora-b));
  /* 雪纹与雪花（内联 SVG，本地） */
  --tex-snow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='12' cy='20' r='1.7' opacity='.9'/%3E%3Ccircle cx='54' cy='9' r='1.1' opacity='.6'/%3E%3Ccircle cx='98' cy='32' r='2' opacity='.92'/%3E%3Ccircle cx='146' cy='14' r='1.3' opacity='.7'/%3E%3Ccircle cx='28' cy='64' r='1.2' opacity='.55'/%3E%3Ccircle cx='76' cy='80' r='2.1' opacity='.8'/%3E%3Ccircle cx='124' cy='62' r='1.4' opacity='.6'/%3E%3Ccircle cx='16' cy='108' r='1.8' opacity='.78'/%3E%3Ccircle cx='60' cy='126' r='1.2' opacity='.6'/%3E%3Ccircle cx='110' cy='112' r='1.7' opacity='.86'/%3E%3Ccircle cx='150' cy='98' r='1.1' opacity='.55'/%3E%3Ccircle cx='40' cy='150' r='1.5' opacity='.72'/%3E%3Ccircle cx='92' cy='152' r='1.3' opacity='.6'/%3E%3Ccircle cx='136' cy='142' r='1.6' opacity='.76'/%3E%3C/g%3E%3C/svg%3E");
  --tex-snow-sm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='18' cy='24' r='1.1' opacity='.7'/%3E%3Ccircle cx='72' cy='16' r='1.4' opacity='.8'/%3E%3Ccircle cx='104' cy='46' r='1' opacity='.6'/%3E%3Ccircle cx='44' cy='66' r='1.5' opacity='.75'/%3E%3Ccircle cx='88' cy='88' r='1.2' opacity='.66'/%3E%3Ccircle cx='20' cy='98' r='1.3' opacity='.7'/%3E%3Ccircle cx='110' cy='104' r='1.1' opacity='.6'/%3E%3C/g%3E%3C/svg%3E");
  --tex-flake: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cg fill='none' stroke='%235FA8C4' stroke-width='1.1' stroke-linecap='round' opacity='.62'%3E%3Cg transform='translate(60,60)'%3E%3Cpath d='M0-13v26M-11.3-6.5l22.6 13M11.3-6.5L-11.3 6.5'/%3E%3Cpath d='M0-13l-2.6-2.6M0-13l2.6-2.6M0 13l-2.6 2.6M0 13l2.6 2.6'/%3E%3C/g%3E%3Cg transform='translate(180,150) scale(.8)'%3E%3Cpath d='M0-13v26M-11.3-6.5l22.6 13M11.3-6.5L-11.3 6.5'/%3E%3Cpath d='M0-13l-2.6-2.6M0-13l2.6-2.6M0 13l-2.6 2.6M0 13l2.6 2.6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  --tex-flake-sm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cg fill='none' stroke='%237FC0D8' stroke-width='1' stroke-linecap='round' opacity='.52'%3E%3Cg transform='translate(120,50) scale(.7)'%3E%3Cpath d='M0-13v26M-11.3-6.5l22.6 13M11.3-6.5L-11.3 6.5'/%3E%3Cpath d='M0-13l-2.6-2.6M0-13l2.6-2.6M0 13l-2.6 2.6M0 13l2.6 2.6'/%3E%3C/g%3E%3Cg transform='translate(46,124) scale(.55)'%3E%3Cpath d='M0-13v26M-11.3-6.5l22.6 13M11.3-6.5L-11.3 6.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   二、动效
   ------------------------------------------------------------ */
@keyframes snowDrift {
  from { background-position: 0 0, 0 0, 0 0; }
  to   { background-position: 0 420px, 0 240px, 0 0; }
}
@keyframes auroraShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes frostShimmer {
  0%   { transform: translateX(-120%); }
  100% { transform: translateX(220%); }
}

/* 可复用的极光细条 */
.aurora-rule {
  height: 2px; border-radius: 2px; border: none;
  background: var(--aurora-grad);
  background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite;
}

/* ------------------------------------------------------------
   三、全局雪原底纹（后台 + 手机端通用）
   ------------------------------------------------------------ */
body {
  background-color: var(--snow-2);
  background-image: var(--tex-flake), var(--tex-flake-sm),
    radial-gradient(1200px 520px at 12% -10%, #FFFFFF 0%, rgba(255, 255, 255, 0) 60%),
    radial-gradient(900px 460px at 88% 4%, var(--ice-0) 0%, rgba(240, 248, 251, 0) 62%),
    linear-gradient(180deg, var(--snow-2) 0%, var(--ice-0) 58%, var(--snow-3) 100%);
  background-size: 240px 240px, 170px 170px, auto, auto, auto;
  background-repeat: repeat, repeat, no-repeat, no-repeat, no-repeat;
  background-attachment: scroll, scroll, fixed, fixed, fixed;
}

/* 滚动条冰感 */
::-webkit-scrollbar-thumb { background: var(--ice-2); }
::-webkit-scrollbar-thumb:hover { background: var(--ice-3); }

/* 选中态冰蓝 */
::selection { background: rgba(127, 192, 216, .35); color: var(--ink); }

/* 焦点环统一为冰川青 */
.input:focus, .select:focus, .textarea:focus {
  border-color: var(--glacier-2);
  box-shadow: 0 0 0 3px var(--focus-ring);
}

/* =============================================================
   四、后台（PC）
   ============================================================= */

/* ---- 侧栏：冰冻松林 ---- */
.sidebar {
  background-image: var(--tex-snow), var(--tex-snow-sm),
    linear-gradient(178deg, #0A1714 0%, #10322C 42%, #14453A 100%);
  background-size: 180px 180px, 120px 120px, auto;
  background-repeat: repeat, repeat, no-repeat;
  box-shadow: inset -1px 0 0 rgba(159, 209, 227, .08);
}
.sidebar::after {
  background: linear-gradient(180deg, transparent, rgba(95, 168, 196, .55) 34%, rgba(124, 111, 168, .4) 66%, transparent);
}
.sidebar-brand { background: linear-gradient(180deg, rgba(159, 209, 227, .07), transparent); }
.sidebar-brand .bt .s { color: var(--glacier-3); }

.nav-group.open > .nav-head .ni { color: var(--glacier-3); }
.nav-item:hover .dot { background: var(--glacier-3); }
.nav-item.active {
  background: linear-gradient(90deg, rgba(95, 168, 196, .26), rgba(95, 168, 196, .04));
}
.nav-item.active .dot { background: var(--glacier-3); box-shadow: 0 0 0 3px rgba(127, 192, 216, .26); }
.nav-item.active::before { background: var(--aurora-grad); }
.sidebar-foot .out:hover { background: rgba(185, 59, 44, .85); }

/* ---- 顶栏：霜玻璃 ---- */
.topbar {
  background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(248, 252, 253, .78));
  backdrop-filter: blur(14px) saturate(1.1);
  border-bottom: 1px solid var(--frost-line);
  box-shadow: 0 8px 22px -20px rgba(31, 86, 110, .55);
}
.topbar .toggle:hover { background: var(--ice-0); color: var(--glacier); }
.topbar-search .input { background: var(--ice-0); }
.topbar-search .input:focus { background: #fff; }
.search-panel .sr:hover { background: var(--ice-0); }

/* ---- 内容区：极光光晕 ---- */
.page-container::before {
  background:
    radial-gradient(900px 220px at 16% -42%, rgba(95, 168, 196, .12), transparent 70%),
    radial-gradient(720px 200px at 82% -34%, rgba(124, 111, 168, .10), transparent 70%),
    radial-gradient(680px 200px at 50% -30%, rgba(46, 139, 111, .07), transparent 72%);
}

/* ---- 页面标题：极光下划线 ---- */
.page-head .ph-l .pt i { color: var(--glacier); }
.page-head .ph-l .pt::after {
  content: ''; display: block; width: 46px; height: 2.5px; margin-top: 7px;
  border-radius: 3px; background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite;
}

/* ---- KPI：冰晶卡 ---- */
.kpi {
  background: linear-gradient(168deg, #FFFFFF 0%, var(--snow-2) 100%);
  border: 1px solid var(--frost-line-2);
  box-shadow: var(--sh-1), inset 0 1px 0 var(--frost-hi);
}
.kpi::before {
  content: ''; position: absolute; left: 0; top: 0; width: 54px; height: 54px;
  background:
    linear-gradient(135deg, rgba(159, 209, 227, .5) 0%, rgba(159, 209, 227, 0) 52%);
  clip-path: polygon(0 0, 100% 0, 0 100%);
  pointer-events: none;
}
.kpi::after { opacity: .12; }
.kpi[data-tone="blue"]::after, .kpi[data-tone="tea"]::after { background: var(--glacier); }
.kpi:hover { box-shadow: var(--ice-sh-hover), inset 0 1px 0 var(--frost-hi); border-color: var(--ice-3); }
.kpi .kp-ico { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55); }
.kpi[data-tone="blue"] .kp-ico { background: var(--ice-1); color: var(--glacier); }

/* ---- 卡片 / 面板：霜边 ---- */
.card, .table-wrap, .toolbar, .ws-col, .kb-col, .cal-wrap, .matrix-wrap, .tree, .tl-card, .mall-cats, .deco-card, .dl-card, .phone-preview {
  border-color: var(--frost-line-2);
  box-shadow: var(--sh-1), inset 0 1px 0 var(--frost-hi);
}
.card-hd, .cal-head, .ws-hd, .kb-hd { border-bottom-color: var(--frost-line-2); }
.card:hover.card-hover, .tl-card:hover, .deco-card:hover, .dl-card:hover, .kb-card:hover { border-color: var(--ice-3); }

/* ---- 表格：冰蓝表头 ---- */
table.dt thead th {
  background: linear-gradient(180deg, var(--ice-0), var(--snow-2));
  border-bottom: 1px solid var(--frost-line);
  color: var(--ink-2);
}
table.dt tbody tr:hover { background: var(--ice-0); }
table.dt tbody tr.is-selected { background: var(--ice-1); }
table.dt .link-name { color: var(--glacier); border-bottom-color: rgba(63, 143, 180, .38); }
table.dt .link-name:hover { color: var(--amber); }
table.dt th.sticky-act, table.dt td.sticky-act { background: var(--snow-2); }
table.dt tbody tr:hover td.sticky-act { background: var(--ice-0); }
table.matrix thead th { background: linear-gradient(180deg, var(--ice-0), var(--snow-2)); }
table.matrix tbody tr:hover td { background: var(--ice-0); }

/* ---- 按钮：冰川主按钮 + 冰光 ---- */
.btn { border-color: var(--frost-line-2); }
.btn:hover { border-color: var(--ice-3); color: var(--glacier); background: var(--snow-2); }
.btn-primary {
  background: linear-gradient(135deg, var(--glacier-2) 0%, var(--tea-2) 55%, var(--tea) 100%);
  box-shadow: 0 8px 20px -10px rgba(31, 86, 110, .7), inset 0 1px 0 rgba(255, 255, 255, .22);
}
.btn-primary:hover { background: linear-gradient(135deg, var(--glacier-3) 0%, var(--tea-2) 58%, var(--tea) 100%); color: #fff; }
.btn-glacier {
  background: linear-gradient(135deg, var(--glacier-3), var(--glacier));
  border-color: transparent; color: #fff; font-weight: 600;
  box-shadow: 0 8px 20px -10px rgba(63, 143, 180, .75);
}
.btn-ghost:hover { background: rgba(95, 168, 196, .1); color: var(--glacier); }

/* ---- 标签 / 徽标：冰蓝补充 ---- */
.badge.info { background: var(--ice-1); color: var(--glacier); }
.badge.ice { background: var(--ice-1); color: var(--glacier); border-color: transparent; }
.chip { background: var(--snow-2); border-color: var(--frost-line-2); }

/* ---- TAB / 分页 / 开关：冰川强调 ---- */
.tabs { border-bottom-color: var(--frost-line-2); }
.tabs .tab:hover { color: var(--glacier); }
.tabs .tab.active { color: var(--glacier); }
.tabs .tab.active::after { background: var(--aurora-grad); background-size: 200% 100%; animation: auroraShift 8s ease-in-out infinite; }
.tabs .tab.active .cnt { background: var(--ice-1); color: var(--glacier); }
.pager .pg:hover { border-color: var(--glacier-2); color: var(--glacier); }
.pager .pg.active {
  background: linear-gradient(135deg, var(--glacier-2), var(--glacier));
  border-color: transparent; color: #fff;
  box-shadow: 0 6px 14px -8px rgba(63, 143, 180, .8);
}
.switch input:checked + span { background: linear-gradient(135deg, var(--glacier-2), var(--tea-2)); }
.progress-bar, .bar > i { background: linear-gradient(90deg, var(--glacier-2), var(--ice-3)); }
.flow-step.is-done { background: var(--ice-1); color: var(--glacier); }
.flow-step.is-cur {
  background: linear-gradient(135deg, var(--glacier-2), var(--tea-2));
  box-shadow: 0 6px 14px -8px rgba(63, 143, 180, .8);
}
.notice { background: var(--ice-1); color: var(--teal, #20636E); }
.notice.info { background: var(--ice-1); color: var(--glacier); }

/* ---- 弹窗：冰晶顶边 ---- */
.modal {
  border: 1px solid var(--frost-line-2);
  box-shadow: var(--sh-4), inset 0 1px 0 var(--frost-hi);
}
.modal::before {
  content: ''; display: block; height: 3px;
  background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite;
}
.modal-hd { background: linear-gradient(180deg, var(--snow-2), #fff); border-bottom-color: var(--frost-line-2); }
.modal-hd .ttl .ico { background: linear-gradient(135deg, var(--glacier-2), var(--tea-2)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25); }
.modal-close:hover { background: var(--ice-0); color: var(--danger); }
.drawer { border-left: 1px solid var(--frost-line-2); }

/* ---- 抽屉 / 卡片封面：冰晶角 ---- */
.rcard .rc-cover::after, .gitem .gi-type { backdrop-filter: blur(6px); }

/* ---- 登录 / 注册：雪原极光 ---- */
.auth-page { background: var(--snow-2); }
.auth-visual { background: linear-gradient(158deg, #0A1714, #14453A 52%, #23695A 100%); }
.auth-visual .av-mask {
  background-image: var(--tex-snow), var(--tex-snow-sm),
    radial-gradient(680px 320px at 78% 14%, rgba(95, 168, 196, .46), transparent 64%),
    radial-gradient(560px 300px at 18% 86%, rgba(124, 111, 168, .3), transparent 66%),
    radial-gradient(520px 260px at 8% 4%, rgba(159, 209, 227, .22), transparent 62%),
    linear-gradient(158deg, rgba(8, 19, 26, .9) 0%, rgba(16, 56, 62, .68) 46%, rgba(63, 143, 180, .62) 100%);
  background-size: 180px 180px, 120px 120px, auto, auto, auto, auto;
  background-repeat: repeat, repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  animation: snowDrift 26s linear infinite;
}
.auth-visual .av-inner::after {
  content: ''; position: absolute; left: 46px; right: 46px; bottom: 98px; height: 2px;
  border-radius: 2px; background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 10s ease-in-out infinite; opacity: .85;
}
.auth-brand .s { color: rgba(159, 209, 227, .8); }
.auth-slogan h1 em { color: var(--glacier-3); }
.auth-slogan h1::after {
  content: ''; display: block; width: 66px; height: 3px; margin-top: 20px;
  border-radius: 3px; background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite; box-shadow: 0 0 14px rgba(95, 168, 196, .55);
}
.auth-feats .f i { color: var(--glacier-3); }
.auth-form-wrap {
  background-image: var(--tex-flake-sm), linear-gradient(180deg, var(--snow-2), var(--ice-0));
  background-size: 170px 170px, auto;
  background-repeat: repeat, no-repeat;
}
.auth-card { padding: 4px; }
.auth-tabs { background: var(--ice-0); }
.auth-tabs a.on { color: var(--glacier); }
.auth-hint { background: var(--ice-1); color: #1D5C72; }

/* =============================================================
   五、手机端
   ============================================================= */

/* ---- 顶部导航：冰冻 + 极光 ---- */
.m-nav {
  background-image: var(--tex-snow-sm), linear-gradient(135deg, #0A1714, #14453A 58%, #23695A);
  background-size: 120px 120px, auto;
  background-repeat: repeat, no-repeat;
  box-shadow: 0 8px 20px -14px rgba(10, 23, 20, .95);
}
.m-nav::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite; pointer-events: none;
}
.m-nav .nav-btn { background: rgba(159, 209, 227, .18); }

/* ---- 底部 Tab：霜玻璃 ---- */
.m-tab { background: var(--glass); backdrop-filter: blur(14px) saturate(1.1); border-top-color: var(--frost-line-2); }
.m-tab .t.on { color: var(--glacier); }
.m-tab .t.on::before { background: var(--aurora-grad); background-size: 200% 100%; animation: auroraShift 8s ease-in-out infinite; }

/* ---- 卡片 / 统计 / 列表：霜边与冰晶角 ---- */
.card, .m-list, .pcard, .gd, .ct, .mall-floor, .mall-coupon, .mall-kk, .dist-nav .dn-i, .mall-login-cta {
  border: 1px solid var(--frost-line-2);
  box-shadow: 0 2px 10px -6px rgba(31, 86, 110, .28), inset 0 1px 0 var(--frost-hi);
}
.card-hd { border-bottom-color: var(--frost-line-2); }
.card-hd h3 i { color: var(--glacier); }

.stat {
  background: linear-gradient(168deg, #fff 0%, var(--snow-2) 100%);
  border: 1px solid var(--frost-line-2);
  box-shadow: 0 2px 10px -6px rgba(31, 86, 110, .28), inset 0 1px 0 var(--frost-hi);
}
.stat::before {
  content: ''; position: absolute; left: 0; top: 0; width: 42px; height: 42px;
  background: linear-gradient(135deg, rgba(159, 209, 227, .55), rgba(159, 209, 227, 0) 55%);
  clip-path: polygon(0 0, 100% 0, 0 100%); pointer-events: none;
}
.stat::after { background: var(--glacier); opacity: .1; }
.stat .k i { color: var(--glacier); }

.li .ic { background: var(--ice-1); color: var(--glacier); }
.li .val { color: var(--glacier); }
.li:active, .m-list .it:active { background: var(--ice-0); }
.badge.info { background: var(--ice-1); color: var(--glacier); }
.chip { background: var(--snow-2); border-color: var(--frost-line-2); }
.chip.on { background: linear-gradient(135deg, var(--glacier-2), var(--tea-2)); border-color: transparent; }

/* ---- 按钮 ---- */
.btn { border-color: var(--frost-line-2); }
.btn-primary {
  background: linear-gradient(135deg, var(--glacier-2), var(--tea-2) 60%, var(--tea));
  box-shadow: 0 8px 18px -10px rgba(31, 86, 110, .8), inset 0 1px 0 rgba(255, 255, 255, .22);
}
.btn-glacier { background: linear-gradient(135deg, var(--glacier-3), var(--glacier)); border-color: transparent; color: #fff; font-weight: 600; }
.ms-btn, .ct-ck.on, .switch-mini input:checked + span { background: linear-gradient(135deg, var(--glacier-2), var(--tea-2)); }
.pay-i.on { border-color: var(--glacier-2); background: var(--ice-0); }
.pay-i.on .ck, .pay-i i:first-child { color: var(--glacier); }

/* ---- 进度条 / 时间轴 ---- */
.bar > i, .mp-bar span { background: linear-gradient(90deg, var(--glacier-3), var(--tea-2)); }
.tl::before { background: linear-gradient(180deg, var(--glacier-3), var(--line)); }
.tl .ti::before { border-color: var(--glacier-2); }

/* ---- 登录页：雪原 ---- */
.login-wrap {
  background-image: var(--tex-snow), var(--tex-snow-sm),
    radial-gradient(620px 320px at 80% 12%, rgba(95, 168, 196, .4), transparent 66%),
    linear-gradient(165deg, #0A1714, #14453A 55%, #23695A 100%);
  background-size: 180px 180px, 120px 120px, auto, auto;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  animation: snowDrift 28s linear infinite;
}
.login-brand .s { color: rgba(159, 209, 227, .72); }
.login-card { border: 1px solid var(--frost-line-2); box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .55), inset 0 1px 0 var(--frost-hi); }
.login-tip { background: rgba(159, 209, 227, .16); }

/* ---- 商城首页 Hero：极光雪原 ---- */
.mall-hero {
  background-image: var(--tex-snow), var(--tex-snow-sm),
    radial-gradient(520px 260px at 84% 6%, rgba(95, 168, 196, .42), transparent 62%),
    linear-gradient(150deg, #0A1714, #14453A 56%, #23695A 100%);
  background-size: 180px 180px, 120px 120px, auto, auto;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  animation: snowDrift 30s linear infinite;
}
.mall-hero::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite; border-radius: 0 0 22px 22px; pointer-events: none;
}
.mall-hero { position: relative; }
.mall-search i { color: var(--glacier); }
.mall-kk .kk-i i, .mall-cats .mc-i i { color: var(--glacier); }
.mc-hd i, .mf-hd .bar { color: var(--glacier); }
.gd-tag.new { background: linear-gradient(135deg, var(--glacier-3), var(--glacier)); }
.mall-tabs .mt.on { border-bottom-color: var(--glacier); }
.mall-auth-hero i { color: var(--glacier); }

/* ---- 会员卡 / 分销卡：冰晶 ---- */
.mem-card, .dist-biz-card {
  background-image: var(--tex-snow-sm),
    linear-gradient(145deg, #0A1714, #14453A 58%, #23695A);
  background-size: 120px 120px, auto;
  background-repeat: repeat, no-repeat;
  border: 1px solid rgba(159, 209, 227, .22);
  box-shadow: 0 12px 26px -16px rgba(10, 23, 20, .55), inset 0 1px 0 rgba(255, 255, 255, .14);
}
.mem-card { position: relative; }
.mem-card::after {
  content: ''; position: absolute; right: 14px; top: 14px; width: 46px; height: 46px;
  background: var(--tex-flake); background-size: contain; background-repeat: no-repeat;
  opacity: .5; pointer-events: none;
}
.mp-bar span, .bp-bar span { background: linear-gradient(90deg, var(--glacier-3), var(--amber-2)); }
.dist-hero {
  border: 1px solid rgba(159, 209, 227, .2);
  background-image: var(--tex-snow-sm), linear-gradient(145deg, #2A1B12, #6B3A22 55%, #C1522E);
  background-size: 120px 120px, auto;
  background-repeat: repeat, no-repeat;
}
.dist-hero::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--aurora-grad); background-size: 200% 100%;
  animation: auroraShift 9s ease-in-out infinite; border-radius: 0 0 18px 18px; pointer-events: none;
}
.dist-hero { position: relative; }
.dist-nav .dn-i i { color: var(--glacier); }
.promo-code { color: var(--glacier); background: var(--ice-1); }
.dn-i:active { background: var(--ice-0); }

/* ---- 弹层：霜面 ---- */
.sheet { border-top: 1px solid var(--frost-line-2); }
.sheet::before {
  content: ''; display: block; width: 42px; height: 4px; border-radius: 3px;
  background: var(--ice-2); margin: -6px auto 12px;
}
.sheet .sh-hd .tt i { color: var(--glacier); }
.vcode { background: linear-gradient(120deg, var(--ice-0), #FFFFFF); border-color: var(--frost-line); }
.vcode > i, .vcode .vc { color: var(--glacier); }

/* ------------------------------------------------------------
   六、无障碍：尊重系统「减少动态效果」
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .auth-visual .av-mask, .login-wrap, .mall-hero, .mem-card, .dist-biz-card,
  .m-nav::after, .m-tab .t.on::before, .modal::before, .page-head .ph-l .pt::after,
  .tabs .tab.active::after, .mall-hero::after, .dist-hero::after, .auth-visual .av-inner::after,
  .auth-slogan h1::after {
    animation: none !important;
  }
}
