/* ============================================================================
   LY云计算 · 前台设计系统（IDC 商务风）
   ----------------------------------------------------------------------------
   视觉基调：白底 + 蓝色主色 + 浅灰分区，卡片化、信息密度高、层级清晰。
   结构：1) 变量与基础  2) 通用组件  3) 站点框架  4) 页面模块  5) 响应式
   注意：后台（admin.css）也引用本文件，通用组件（btn/form/flash/表格/分页）
         必须保持中性、可用，不可依赖前台专用的外层容器。
   ========================================================================== */

/* ========================= 1. 变量与基础 ========================= */
:root{
  --brand:#2563eb;
  --brand-d:#1d4ed8;
  --brand-l:#eff4ff;
  --brand-l2:#dbe6ff;

  --ink:#0f172a;
  --ink-2:#334155;
  --ink-3:#64748b;
  --ink-4:#94a3b8;

  --line:#e5e9f0;
  --line-2:#eef2f7;
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-2:#fbfcfe;

  --ok:#0d9f6e;
  --ok-l:#e9f8f1;
  --warn:#d97706;
  --warn-l:#fff7e6;
  --danger:#dc2626;
  --danger-l:#fef2f2;
  --info:#2563eb;
  --info-l:#eff4ff;

  --radius:10px;
  --radius-sm:6px;
  --radius-lg:14px;

  --shadow-xs:0 1px 2px rgba(15,23,42,.05);
  --shadow-sm:0 1px 2px rgba(15,23,42,.04),0 4px 12px -6px rgba(15,23,42,.10);
  --shadow-md:0 8px 28px -12px rgba(15,23,42,.22);

  --header-h:64px;
  --wrap:1200px;

  /* 兼容旧模板使用的变量名 */
  --border:var(--line);
  --bg-soft:var(--surface-2);
  --text:var(--ink);
  --text-muted:var(--ink-3);
  --card:#fff;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-d)}
h1,h2,h3,h4,h5{margin:0;color:var(--ink);font-weight:600;line-height:1.35}
p{margin:0 0 10px}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding-left:20px}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
::selection{background:var(--brand-l2);color:var(--brand-d)}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.hide{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* 文本语义色 */
.c-muted,.text-muted{color:var(--ink-3)!important}
.text-ok{color:var(--ok)!important}
.text-warn{color:var(--warn)!important}
.text-danger{color:var(--danger)!important}
.text-price,.c-price{color:var(--danger)!important;font-weight:600}
.txt-in{color:var(--ok);font-weight:600}
.txt-out{color:var(--danger);font-weight:600}
.ta-r{text-align:right}

/* ========================= 2. 通用组件 ========================= */

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:38px;padding:0 16px;border-radius:var(--radius-sm);
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);
  font-size:14px;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;
  text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.btn:hover{background:var(--bg-soft);border-color:var(--primary-soft);color:var(--primary-deep)}
.btn:active{transform:translateY(.5px)}
.btn svg{width:15px;height:15px;flex:none}
.btn svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.24)}
.btn-primary:hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.btn-primary:disabled,.btn-primary.disabled,.btn.disabled{background:#b9c8e8;border-color:#b9c8e8;color:#fff;cursor:not-allowed;box-shadow:none;opacity:.9}

.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-3)}
.btn-ghost:hover{background:#eef2f7;color:var(--ink)}

.btn-outline{background:var(--surface);border-color:var(--brand-l2);color:var(--brand)}
.btn-outline:hover{background:var(--brand-l);border-color:var(--brand)}

.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}

.btn-warn{background:var(--warn);border-color:var(--warn);color:#fff}
.btn-warn:hover{background:#b45309;border-color:#b45309;color:#fff}

.btn-copy{height:34px;padding:0 12px;background:var(--brand-l);border-color:var(--brand-l2);color:var(--brand);font-size:13px}
.btn-copy:hover{background:var(--brand-l2);color:var(--brand-d)}

.btn-sm{height:32px;padding:0 12px;font-size:13px;border-radius:var(--radius-sm)}
.btn-xs{height:26px;padding:0 9px;font-size:12px;border-radius:4px}
.btn-lg{height:44px;padding:0 22px;font-size:15px;border-radius:8px}
.btn-block{display:flex;width:100%}
.btn-ext-icon{width:14px;height:14px}

/* ---------- 卡片 / 面板 ---------- */
.card,.panel{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-xs);
}
.card{padding:20px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-title,.panel-title{font-size:16px;font-weight:600}
.card-note{font-size:13px;color:var(--ink-3)}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 20px;border-bottom:1px solid var(--line-2);
}
.panel-body{padding:20px}
.panel-foot{padding:14px 20px;border-top:1px solid var(--line-2);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}

/* ---------- 提示条 ---------- */
.flash,.alert{
  display:flex;align-items:flex-start;gap:8px;
  padding:10px 14px;border-radius:var(--radius-sm);font-size:13.5px;line-height:1.6;
  border:1px solid transparent;margin-bottom:10px;
}
.flash:last-child,.alert:last-child{margin-bottom:0}
.flash-success,.alert-success,.alert-ok{background:var(--ok-l);border-color:#c6ebdb;color:#0a7c55}
.flash-danger,.alert-danger{background:var(--danger-l);border-color:#fbd5d5;color:#b91c1c}
.flash-warning,.alert-warning{background:var(--warn-l);border-color:#fae3b6;color:#a15c07}
.flash-info,.alert-info{background:var(--info-l);border-color:var(--brand-l2);color:var(--brand-d)}
.flash-wrap{padding-top:14px}
.flash-wrap .flash{margin-bottom:8px}
.notice{padding:12px 14px;border-radius:var(--radius-sm);font-size:13.5px;border:1px solid transparent;line-height:1.7}
.notice-info{background:var(--info-l);border-color:var(--brand-l2);color:#1e40af}
.notice-warning{background:var(--warn-l);border-color:#fae3b6;color:#a15c07}
.notice-danger{background:var(--danger-l);border-color:#fbd5d5;color:#b91c1c}

/* ---------- 标签 / 徽章 ---------- */
.tag{
  display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;
  background:#f1f5f9;color:var(--ink-3);font-size:12px;line-height:1;white-space:nowrap;
}
.tag-cat{background:var(--brand-l);color:var(--brand);font-weight:500}
.badge{
  display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:4px;
  font-size:11.5px;font-weight:500;line-height:1;white-space:nowrap;
  background:#f1f5f9;color:var(--ink-3);
}
.badge-ok{background:var(--ok-l);color:#0a7c55}
.badge-info{background:var(--brand-l);color:var(--brand)}
.badge-warn{background:var(--warn-l);color:#a15c07}
.badge-danger{background:var(--danger-l);color:#b91c1c}
.badge-muted{background:#f1f5f9;color:var(--ink-4)}
.badge-auto{background:var(--ok-l);color:#0a7c55;font-weight:600}
.badge-ext{background:var(--warn-l);color:#a15c07;font-weight:600}

.status-badge{
  display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:4px;
  font-size:12px;font-weight:500;line-height:1;background:#f1f5f9;color:var(--ink-3);
}
.status-badge.big{height:28px;padding:0 12px;font-size:13px}
.status-ok{background:var(--ok-l);color:#0a7c55}
.status-info{background:var(--brand-l);color:var(--brand)}
.status-warn{background:var(--warn-l);color:#a15c07}
.status-danger{background:var(--danger-l);color:#b91c1c}
.status-muted{background:#f1f5f9;color:var(--ink-3)}

/* ---------- 表单 ---------- */
.form-item{margin-bottom:16px}
.form-item>label,.form-item>span.label{display:block;margin-bottom:6px;font-size:13.5px;font-weight:500;color:var(--ink-2)}
.form-item label em{color:var(--danger);font-style:normal;margin-left:2px}
.form-item small{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-3);line-height:1.6}

input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],
input[type=url],input[type=search],input[type=date],input[type=datetime-local],select,textarea{
  width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--ink);font:inherit;font-size:14px;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
textarea{height:auto;padding:10px 12px;line-height:1.6;resize:vertical}
select{appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px;padding-right:32px}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
input::placeholder,textarea::placeholder{color:var(--ink-4)}
input[readonly]{background:var(--surface-2);color:var(--ink-2)}
input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--brand);vertical-align:-2px}
.input-group{display:flex;gap:8px;align-items:stretch}
.input-group>input{flex:1;min-width:0}
.input-group>.btn{height:40px;flex:none}

/* ---------- 表格 ---------- */
.kv-table{width:100%;border-collapse:collapse;font-size:13.5px}
.kv-table tr{border-bottom:1px solid var(--line-2)}
.kv-table tr:last-child{border-bottom:0}
.kv-table td{padding:10px 0;vertical-align:top;color:var(--ink-2)}
.kv-table td:first-child{width:120px;color:var(--ink-3);white-space:nowrap;padding-right:16px}

.table{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface)}
.table th{
  padding:10px 12px;text-align:left;font-weight:500;color:var(--ink-3);font-size:12.5px;
  background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;
}
.table td{padding:11px 12px;border-bottom:1px solid var(--line-2);color:var(--ink-2);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:#fafcff}

/* ---------- 分页 ---------- */
.pagination{display:flex;gap:6px;justify-content:center;align-items:center;margin:24px 0 0;flex-wrap:wrap}
.page-item{display:inline-flex}
.page-link{
  display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);
  color:var(--ink-2);font-size:13px;
}
.page-item a.page-link:hover{border-color:var(--brand);color:var(--brand)}
.page-item.active .page-link{background:var(--brand);border-color:var(--brand);color:#fff}
.page-item.disabled .page-link{color:var(--ink-4);background:var(--surface-2);cursor:not-allowed}

/* ---------- 空状态 ---------- */
.empty-state{
  padding:56px 20px;text-align:center;color:var(--ink-3);font-size:14px;
  background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);
}

/* ---------- 加载态 ---------- */
.is-loading{opacity:.55;pointer-events:none;transition:opacity .15s}
.spin{
  display:inline-block;width:13px;height:13px;border:2px solid var(--brand-l2);
  border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;
}
@keyframes spin{to{transform:rotate(360deg)}}
.ok-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);vertical-align:1px}

/* ---------- 分隔与标题区 ---------- */
.section-head{margin:0 0 18px}
.section-head h2{font-size:22px;letter-spacing:-.2px}
.section-head p{margin:6px 0 0;color:var(--ink-3);font-size:13.5px}
.section-head.left{text-align:left}
.section-head.center{text-align:center}

.page-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  padding-top:22px;padding-bottom:18px;flex-wrap:wrap;
}
.page-head h1{font-size:22px;letter-spacing:-.2px}
.page-head p{margin:6px 0 0;color:var(--ink-3);font-size:13.5px}
.page-head-actions{display:flex;gap:8px;flex-wrap:wrap}

.breadcrumb{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding-top:14px;padding-bottom:0;font-size:13px;color:var(--ink-3);
}
.breadcrumb a{color:var(--ink-3)}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb span{color:var(--text-dim)}
.breadcrumb em{font-style:normal;color:var(--ink-2);max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 选项卡 ---------- */
.tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tab{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-sm);
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13.5px;
}
.tab:hover{border-color:var(--primary-soft);color:var(--primary-deep)}
.tab.on,.tab.is-active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:500}
.tab .n{font-size:12px;opacity:.75}

.filter-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:16px;
}
.filter-bar .fb-label{font-size:13px;color:var(--ink-3);white-space:nowrap}

/* ---------- 步骤条 ---------- */
.steps{display:flex;align-items:center;gap:0}
.steps .step{display:flex;align-items:center;gap:8px;color:var(--ink-4);font-size:13px;flex:none}
.steps .step i{
  display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;
  background:#eef2f7;color:var(--ink-4);font-style:normal;font-size:12px;font-weight:600;
}
.steps .step.done{color:var(--ink-2)}
.steps .step.done i{background:var(--brand);color:#fff}
/* 进行中：交付尚未完成的那一步，不再被误标为已完成（2.0.15） */
.steps .step.doing{color:var(--brand)}
.steps .step.doing i{background:transparent;color:var(--brand);box-shadow:inset 0 0 0 1.5px var(--brand)}
.steps .step+.step::before{content:"";display:block;width:36px;height:1px;background:var(--line);margin:0 10px}

/* ---------- 栅格 ---------- */
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ========================= 3. 站点框架 ========================= */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--surface);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;gap:28px;height:var(--header-h)}

.logo{display:flex;align-items:center;gap:9px;flex:none;color:var(--ink)}
.logo:hover{color:var(--ink)}
.logo-mark{
  width:30px;height:30px;border-radius:8px;flex:none;
  background:linear-gradient(135deg,var(--brand),#38bdf8);
  box-shadow:0 3px 8px -2px rgba(37,99,235,.5);
  position:relative;
}
.logo-mark::after{
  content:"";position:absolute;inset:8px 9px;border:2px solid #fff;border-radius:3px;
  border-top-color:transparent;
}
.logo-text{font-size:17px;font-weight:700;letter-spacing:-.3px;white-space:nowrap}

.main-nav{display:flex;align-items:center;gap:2px;flex:1;min-width:0}
.main-nav a{
  position:relative;display:inline-flex;align-items:center;height:var(--header-h);padding:0 13px;
  color:var(--ink-2);font-size:14.5px;font-weight:500;white-space:nowrap;
}
.main-nav a:hover{color:var(--brand)}
.main-nav a.active{color:var(--brand)}
.main-nav a.active::after{
  content:"";position:absolute;left:13px;right:13px;bottom:0;height:2px;background:var(--brand);border-radius:2px 2px 0 0;
}
.main-nav .nav-user-name{
  display:none;font-size:13px;color:var(--ink-3);padding:0 13px;border-top:1px solid var(--line);
  margin-top:8px;padding-top:14px;font-weight:400;
}
.nav-register-wrap{display:none}
/* 登录态的个人入口只出现在移动端抽屉里，桌面走「会员中心」，避免导航过长 */
@media (min-width:769px){
  .main-nav .nav-extra{display:none}
}

/* 防溢出保险：长 URL / 邮箱等不撑破栅格（用 clip 而非 hidden，避免破坏 sticky 顶栏） */
html,body{max-width:100%;overflow-x:clip}
.hero-inner,.hero-copy,.hero-card,.pd,.pd-main,.pd-side,.listing,.listing-main,
.account,.account-main,.pay-wrap,.product-grid,.p-card{min-width:0}
.hc-list dd,.svc-remote-input,.rc-no,.order-no,.au-mail,.au-name,.rc-title{overflow-wrap:anywhere}

.header-actions{display:flex;align-items:center;gap:8px;flex:none}
.user-chip{
  display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:6px;
  background:var(--surface-2);border:1px solid var(--line);font-size:13px;color:var(--ink-2);
  max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.balance-chip{
  display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px;border-radius:6px;
  background:var(--brand-l);color:var(--brand);font-size:13px;white-space:nowrap;
}
.balance-chip b{font-variant-numeric:tabular-nums}
.balance-chip:hover{background:var(--brand-l2);color:var(--brand-d)}
.header-divider{width:1px;height:20px;background:var(--line);margin:0 2px}
.member-link{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:6px;
  font-size:13.5px;color:var(--ink-2);border:1px solid var(--line);
}
.member-link:hover{border-color:var(--brand);color:var(--brand)}

.nav-toggle{
  display:none;width:38px;height:38px;align-items:center;justify-content:center;flex:none;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;color:var(--ink-2);
}
.nav-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nav-toggle .ico-close{display:none}
body.nav-open .nav-toggle .ico-close{display:block}
body.nav-open .nav-toggle .ico-menu{display:none}

.nav-mask{
  display:none;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:48;
  opacity:0;transition:opacity .2s;
}
body.nav-open .nav-mask{display:block;opacity:1}

.site-main{min-height:calc(100vh - var(--header-h) - 300px);padding-bottom:48px}

/* 页脚 */
.site-footer{margin-top:40px;background:#0f172a;color:#cbd5e1;font-size:13.5px}
.footer-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1.4fr 1.2fr;gap:36px;
  padding-top:42px;padding-bottom:34px;
}
.site-footer h4{color:#fff;font-size:14px;margin-bottom:12px}
.site-footer a{display:block;color:#94a3b8;line-height:2}
.site-footer a:hover{color:#fff}
.site-footer .logo{color:#fff;margin-bottom:12px}
.footer-desc{color:#94a3b8;line-height:1.8;margin:10px 0 0;font-size:13px}
.footer-grid .qa{color:#94a3b8;margin-bottom:6px;line-height:1.7;font-size:13px}
.footer-grid .qa strong{color:#e2e8f0;font-weight:500}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:16px 0;font-size:12.5px;color:#64748b}
.footer-bottom .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* 移动端底部导航 */
.mobile-tabbar{display:none}

/* 公告弹窗 */
.modal-mask{
  position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.5);
  align-items:center;justify-content:center;padding:20px;
}
.announce-modal{
  width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);overflow:hidden;position:relative;
}
.am-close{
  position:absolute;top:10px;right:12px;border:0;background:transparent;font-size:22px;
  line-height:1;color:var(--ink-4);cursor:pointer;padding:4px;
}
.am-close:hover{color:var(--ink)}
.am-head{padding:18px 22px;font-size:16px;font-weight:600;border-bottom:1px solid var(--line-2)}
.am-body{padding:18px 22px;max-height:52vh;overflow:auto;font-size:14px;line-height:1.8;color:var(--ink-2)}
.am-foot{padding:14px 22px;border-top:1px solid var(--line-2);text-align:right;background:var(--surface-2)}

/* ========================= 4. 页面模块 ========================= */

/* ---------- 首页 Hero ---------- */
.hero{
  background:
    radial-gradient(900px 300px at 15% -10%,#e6efff 0%,rgba(230,239,255,0) 70%),
    linear-gradient(180deg,#f8fbff 0%,var(--bg) 100%);
  border-bottom:1px solid var(--line);
}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;padding:52px 20px 46px}
.hero-badge{
  display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:999px;
  background:var(--brand-l);color:var(--brand);font-size:12.5px;font-weight:500;margin-bottom:16px;
}
.hero-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand)}
.hero h1{font-size:38px;line-height:1.22;letter-spacing:-1px;margin-bottom:14px}
.hero h1 span{color:var(--brand)}
.hero-sub{color:var(--ink-3);font-size:15px;line-height:1.8;margin-bottom:24px;max-width:560px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap}
.hero-stats>div{display:flex;flex-direction:column;gap:2px}
.hero-stats strong{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.hero-stats span{font-size:12.5px;color:var(--ink-3)}

.hero-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);overflow:hidden;
}
.hc-head{
  display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line-2);
  font-size:13.5px;font-weight:600;color:var(--ink-2);background:var(--surface-2);
}
.hc-led{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-l)}
.hc-list{margin:0;padding:6px 18px 14px}
.hc-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line-2)}
.hc-list>div:last-child{border-bottom:0}
.hc-list dt{color:var(--ink-3);font-size:13px;flex:none}
.hc-list dd{margin:0;font-size:13px;color:var(--ink-2);text-align:right;font-weight:500}
.hc-list dd.is-key{color:var(--brand);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
.hc-foot{padding:12px 18px;background:var(--brand-l);color:var(--brand);font-size:12.5px;text-align:center}

/* 分类快捷入口 */
.quick-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.quick-cat{
  display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);
  transition:border-color .15s,box-shadow .15s,transform .15s;
}
.quick-cat:hover{border-color:var(--brand-l2);box-shadow:var(--shadow-sm);transform:translateY(-1px);color:var(--ink)}
.qc-ico{
  width:38px;height:38px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--brand-l);color:var(--brand);
}
.qc-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.qc-body{flex:1;min-width:0}
.qc-name{display:block;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qc-desc{display:block;font-size:12px;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qc-count{font-size:12px;color:var(--ink-4);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:1px 8px;flex:none}

/* 区块间距 */
.section{padding:38px 0 0}
.section-tight{padding:26px 0 0}

/* ---------- 产品卡片 ---------- */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.p-card{
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px;position:relative;
  transition:border-color .18s,box-shadow .18s,transform .18s;
}
.p-card:hover{border-color:var(--brand-l2);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.pc-head{flex:none}
.pc-title{font-size:16px;font-weight:600;line-height:1.4;color:var(--ink);margin-bottom:4px}
.pc-sub{font-size:12.5px;color:var(--ink-3);line-height:1.5;min-height:19px}
.pc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.pc-price{display:flex;align-items:baseline;gap:3px;margin:14px 0 4px;color:var(--danger)}
.pc-price .cur{font-size:14px;font-weight:600}
.pc-price .num{font-size:28px;font-weight:700;letter-spacing:-.6px;line-height:1;font-variant-numeric:tabular-nums}
.pc-price .unit{font-size:12px;color:var(--ink-4);margin-left:2px;font-weight:400}
.pc-price .origin{font-size:12.5px;color:var(--ink-4);text-decoration:line-through;margin-left:6px;font-weight:400}
.pc-spec{
  font-size:12.5px;color:var(--ink-3);line-height:1.6;margin:8px 0 0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:20px;
}
.pc-meta{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--line);display:grid;gap:6px}
.pc-meta li{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ink-3)}
.pc-meta b{font-weight:600;color:var(--ink-2)}
.pc-foot{margin-top:auto;padding-top:14px}
.pc-flag{
  display:inline-flex;align-items:center;margin-left:auto;align-self:center;
  background:var(--danger-l);color:var(--danger);border:1px solid #fbd5d5;
  font-size:11px;padding:1px 7px;border-radius:4px;font-weight:500;line-height:1.5;white-space:nowrap;
}
.p-card.is-market::before{
  content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-l2);
}

/* ---------- 优势条 ---------- */
.feature-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
}
.feature-strip .feat{background:var(--surface);padding:18px 20px}
.feat-icon{
  width:34px;height:34px;border-radius:8px;background:var(--brand-l);color:var(--brand);
  display:flex;align-items:center;justify-content:center;margin-bottom:10px;
}
.feat-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.feat h3{font-size:14px;margin-bottom:4px}
.feat p{font-size:12.5px;color:var(--ink-3);line-height:1.65;margin:0}

/* ---------- 流程 ---------- */
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.flow-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.flow-num{
  display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;
  background:var(--brand);color:#fff;font-size:12.5px;font-weight:700;margin-bottom:10px;
}
.flow-item h4{font-size:14px;margin-bottom:4px}
.flow-item p{font-size:12.5px;color:var(--ink-3);margin:0;line-height:1.65}

/* 购买须知 */
.notice-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.notice-box h3{font-size:15px;margin-bottom:10px}
.notice-box p{font-size:13.5px;color:var(--ink-2);line-height:1.85;margin:0}

/* 提示卡（通用） */
.cat-note{
  display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--radius-sm);
  background:var(--brand-l);border:1px solid var(--brand-l2);color:#1e40af;font-size:13px;line-height:1.7;
  margin-bottom:16px;
}
.cat-note p{margin:0}
.cat-note b{font-weight:600}
.cn-ill{display:none}

/* ---------- 列表页布局 ---------- */
.listing{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start;padding-top:18px}
.listing.cat-plain{grid-template-columns:minmax(0,1fr)}
.listing-aside{position:sticky;top:calc(var(--header-h) + 16px)}
.side-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.side-head{
  display:flex;align-items:center;justify-content:space-between;padding:13px 16px;
  border-bottom:1px solid var(--line-2);font-size:13.5px;font-weight:600;color:var(--ink-2);
}
.cat-list{padding:6px}
.cat-item{
  display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:6px;
  color:var(--ink-2);font-size:13.5px;
}
.cat-item:hover{background:var(--surface-2);color:var(--ink)}
.cat-item.is-active{background:var(--brand-l);color:var(--brand);font-weight:600}
.cat-item .ci-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-item .ci-count{font-size:12px;color:var(--ink-4);background:var(--surface-2);border-radius:999px;padding:0 7px}
.cat-item.is-active .ci-count{background:#fff;color:var(--brand)}
.cat-item .ci-dot{width:6px;height:6px;border-radius:50%;background:var(--brand-l2);flex:none}
.listing-main{min-width:0}
.listing-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;
}
.lt-info{font-size:13px;color:var(--ink-3)}
.lt-info b{color:var(--ink);font-weight:600}
.lt-search{display:flex;gap:8px;flex:1;max-width:360px;min-width:200px}
.lt-search input{height:36px}
.lt-search .btn{height:36px}

.cat-scroll{display:none;gap:8px;overflow-x:auto;padding:2px 0 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cat-scroll::-webkit-scrollbar{display:none}
.cat-scroll .tab{flex:none}

/* ---------- 商品详情 ---------- */
.pd{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:22px;align-items:start;padding-top:18px}
.pd-main{min-width:0}
.pd-side{position:sticky;top:calc(var(--header-h) + 16px)}

.pd-header{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:16px;
}
.pd-title{font-size:24px;letter-spacing:-.4px;line-height:1.35;margin-bottom:6px}
.pd-sub{color:var(--ink-3);font-size:14px;margin-bottom:10px}
.pd-tags{display:flex;gap:6px;flex-wrap:wrap}
.pd-price-row{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2);
}
.pd-price{display:flex;align-items:baseline;gap:3px;color:var(--danger)}
.pd-price .cur{font-size:16px;font-weight:600}
.pd-price .num{font-size:34px;font-weight:700;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
.pd-price .unit{font-size:13px;color:var(--ink-4);font-weight:400;margin-left:2px}
.pd-price .origin{font-size:13px;color:var(--ink-4);text-decoration:line-through;margin-left:8px;font-weight:400}
.pd-stats{display:flex;gap:22px;flex-wrap:wrap}
.pd-stats span{font-size:12.5px;color:var(--ink-3)}
.pd-stats b{display:block;font-size:13.5px;color:var(--ink-2);margin-top:1px}

.pd-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}
.pd-block-head{
  display:flex;align-items:center;gap:8px;padding:13px 22px;border-bottom:1px solid var(--line-2);
  font-size:14px;font-weight:600;color:var(--ink);
}
.pd-block-head::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand)}
.pd-block-body{padding:18px 22px}
.pd-desc{font-size:13.5px;color:var(--ink-2);line-height:1.9}

.spec-table{width:100%;border-collapse:collapse;font-size:13.5px}
.spec-table th{
  width:130px;text-align:left;font-weight:500;color:var(--ink-3);background:var(--surface-2);
  padding:10px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap;
}
.spec-table td{padding:10px 14px;border-bottom:1px solid var(--line-2);color:var(--ink-2)}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:0}

/* 购买面板 */
.buy-panel{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);overflow:hidden;
}
.bp-head{padding:16px 18px;border-bottom:1px solid var(--line-2);background:var(--surface-2)}
.bp-label{font-size:12.5px;color:var(--ink-3);display:block;margin-bottom:2px}
.bp-price{display:flex;align-items:baseline;gap:2px;color:var(--danger)}
.bp-price .cur{font-size:15px;font-weight:600}
.bp-price .num{font-size:30px;font-weight:700;letter-spacing:-.8px;line-height:1.1;font-variant-numeric:tabular-nums}
.bp-price .unit{font-size:12.5px;color:var(--ink-4);margin-left:3px;font-weight:400}
.bp-price .free{font-size:22px;letter-spacing:0}
.bp-body{padding:16px 18px}
.bp-foot{padding:0 18px 16px}

.pkg-select{margin-bottom:14px}
.pkg-select-title{font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.pkg-options{display:grid;gap:8px}
.pkg-option{display:block;cursor:pointer;position:relative}
.pkg-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.po-box{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);transition:border-color .15s,background .15s,box-shadow .15s;
}
.pkg-option:hover .po-box{border-color:#cbd5e1}
.pkg-option input:checked+.po-box{border-color:var(--brand);background:var(--brand-l);box-shadow:0 0 0 1px var(--brand) inset}
.po-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.po-main b{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.4}
.po-main em{font-style:normal;font-size:12px;color:var(--ink-4);line-height:1.4}
.po-price{font-style:normal;font-size:13.5px;font-weight:600;color:var(--danger);white-space:nowrap}

.pay-method-title{font-size:13px;font-weight:600;color:var(--ink-2);margin:14px 0 8px}
.pay-methods{display:grid;gap:8px}
.pay-method{display:block;cursor:pointer;position:relative}
.pay-method input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.pm-box{
  display:flex;flex-direction:column;gap:1px;padding:10px 12px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface);transition:border-color .15s,background .15s;
}
.pay-method:hover .pm-box{border-color:#cbd5e1}
.pay-method input:checked+.pm-box{border-color:var(--brand);background:var(--brand-l)}
.pm-box b{font-size:13.5px;font-weight:600;color:var(--ink)}
.pm-box em{font-style:normal;font-size:12px;color:var(--ink-3);line-height:1.5}

/* 实名提示 */
.realname-hint{
  display:flex;align-items:center;gap:8px;padding:9px 12px;margin:12px 0;
  background:var(--warn-l);border:1px solid #fae3b6;border-radius:var(--radius-sm);
  font-size:12.5px;color:#a15c07;line-height:1.5;
}
.realname-hint .rh-icon{flex:none;font-size:14px}
.realname-hint .rh-text{flex:1;min-width:0}
.realname-hint .rh-text em{font-style:normal;text-decoration:underline;text-decoration-style:dotted}
.realname-hint .rh-btn{flex:none;color:var(--brand);font-weight:600;white-space:nowrap}

/* 优惠券 / 余额抵扣 */
.coupon-deduct,.balance-deduct{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.cd-label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.coupon-deduct select{height:36px;font-size:13px}
.cd-note{font-size:12px;color:var(--ink-3);margin-top:6px;line-height:1.5}
.bd-check{display:flex;gap:9px;align-items:flex-start;cursor:pointer}
.bd-check input{margin-top:2px;flex:none}
.bd-box{display:flex;flex-direction:column;gap:1px;min-width:0}
.bd-box b{font-size:13px;font-weight:600;color:var(--ink)}
.bd-box em{font-style:normal;font-size:12px;color:var(--ink-3);line-height:1.5}
.bd-note{font-size:12px;margin-top:6px}

/* 购买保障 */
.buy-guarantee{
  display:grid;gap:6px;padding:12px 18px 16px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--ink-3);
}
.buy-guarantee>div{display:flex;align-items:center;gap:6px}
.buy-guarantee>div::before{
  content:"";width:12px;height:12px;flex:none;border-radius:50%;background:var(--ok-l);
  border:1px solid #c6ebdb;
}

/* 外部购买块 */
.ext-buy-box{padding:16px 18px}
.ebb-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--warn);margin-bottom:8px}
.ebb-icon{width:16px;height:16px;flex:none}
.ebb-desc{font-size:12.5px;color:var(--ink-3);line-height:1.75;margin-bottom:12px}
.ebb-note{font-size:12px;color:var(--ink-4);margin-top:10px;line-height:1.6}

/* 其他商品 */
.other-list{display:grid;gap:6px}
.other-item{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;
  border-radius:6px;color:var(--ink-2);font-size:13px;
}
.other-item:hover{background:var(--surface-2);color:var(--ink)}
.other-item .op-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.other-item .op-price{color:var(--danger);font-weight:600;white-space:nowrap}

/* ---------- 支付页 ---------- */
.pay-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start;padding-top:18px}
.pay-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.pay-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.pay-head h1{font-size:20px}
.order-no{display:block;font-size:12.5px;color:var(--ink-4);margin-top:3px;font-family:ui-monospace,Menlo,Consolas,monospace}
.pay-amount{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:16px 18px;background:var(--brand-l);border:1px solid var(--brand-l2);border-radius:var(--radius-sm);margin-bottom:16px;
}
.pay-amount .label{font-size:13px;color:var(--ink-2)}
.pay-amount .value{font-size:30px;font-weight:700;color:var(--danger);letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.pay-amount .value i{font-size:16px;font-style:normal;font-weight:600;margin-right:2px}
.pay-info{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:16px}
.pay-info>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line-2);font-size:13px}
.pay-info>div:last-child{border-bottom:0}
.pay-info span{color:var(--ink-3);flex:none}
.pay-info b{color:var(--ink-2);font-weight:500;text-align:right;word-break:break-all}

.pay-channel-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.pay-channel-switch a{
  display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:var(--radius-sm);
  border:1px solid var(--line);font-size:13px;color:var(--ink-2);background:var(--surface);
}
.pay-channel-switch a:hover{border-color:#cbd5e1;color:var(--ink)}
.pay-channel-switch a.on{border-color:var(--brand);background:var(--brand-l);color:var(--brand);font-weight:600}

.qr-area{text-align:center;padding:20px 0 8px}
.qr-box{
  display:inline-flex;align-items:center;justify-content:center;padding:12px;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);
}
.qr-box canvas{display:block;width:200px;height:200px}
.qr-tip{font-size:13.5px;color:var(--ink-2);margin:14px 0 6px}
.qr-tip-m{font-size:12px;color:var(--ink-4);line-height:1.7;max-width:420px;margin:0 auto}
.qr-status{
  display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:6px 14px;border-radius:999px;
  background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;color:var(--ink-3);
}
.qr-placeholder{padding:40px;color:var(--ink-4);font-size:13px}
.page-pay-tip{text-align:center;padding:26px 0}
.page-pay-tip p{color:var(--ink-3);margin-bottom:14px}

.demo-pay-box{margin-top:18px;padding:14px 16px;border:1px dashed #fae3b6;border-radius:var(--radius-sm);background:var(--warn-l)}
.demo-title{font-size:12.5px;font-weight:700;color:#a15c07;margin-bottom:6px}
.demo-pay-box p{font-size:12.5px;color:#a15c07;line-height:1.7;margin-bottom:10px}
.pay-footer{display:flex;gap:16px;justify-content:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2);font-size:13px}

.donate-pay-area{text-align:center}
.dm-qr-grid{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:14px 0}
.dm-qr{margin:0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.dm-qr img{width:160px;height:160px;object-fit:contain}
.dm-qr figcaption{text-align:center;font-size:12px;color:var(--ink-3);margin-top:6px}
.dm-desc{font-size:13px;color:var(--ink-2);line-height:1.8}
.donate-claimed{
  margin-top:14px;padding:14px;border:1px solid #c6ebdb;background:var(--ok-l);border-radius:var(--radius-sm);
  color:#0a7c55;font-size:13px;text-align:left;
}
.donate-claimed b{display:block;margin-bottom:4px}
.donate-claimed span{display:block;font-size:12px;opacity:.8;margin-bottom:6px}

.pay-side .panel-body{padding:16px 18px}
.side-sum{display:grid;gap:9px}
.side-sum-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-3)}
.side-sum-row b{color:var(--ink-2);font-weight:500}
.side-sum-row.total{padding-top:10px;border-top:1px dashed var(--line);font-size:14px;color:var(--ink)}
.side-sum-row.total b{font-size:20px;color:var(--danger);font-weight:700}

/* ---------- 会员中心 ---------- */
.account{display:grid;grid-template-columns:216px minmax(0,1fr);gap:20px;align-items:start;padding-top:8px}
.account-aside{position:sticky;top:calc(var(--header-h) + 16px)}
.account-user{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;
}
.au-avatar{
  width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#38bdf8);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;margin-bottom:10px;
}
.au-name{font-size:14px;font-weight:600;color:var(--ink);word-break:break-all;line-height:1.4}
.au-mail{font-size:12px;color:var(--ink-4);word-break:break-all;margin-top:2px}
.au-bal{
  display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;
  border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ink-3);
}
.au-bal b{color:var(--danger);font-size:15px;font-weight:700}

.account-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:6px;display:grid;gap:2px}
.account-nav .an-group{font-size:11.5px;color:var(--ink-4);padding:9px 12px 5px;font-weight:600;letter-spacing:.4px}
.account-nav a{
  display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:6px;
  color:var(--ink-2);font-size:13.5px;
}
.account-nav a:hover{background:var(--surface-2);color:var(--ink)}
.account-nav a.on{background:var(--brand-l);color:var(--brand);font-weight:600}
.account-nav a .an-ico{width:16px;height:16px;flex:none;opacity:.75}
.account-nav a .an-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.account-main{min-width:0}
.account-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px;
}
.account-head h1{font-size:20px;letter-spacing:-.2px}
.account-head p{margin:4px 0 0;font-size:13px;color:var(--ink-3)}

.row-list{display:grid;gap:12px}
.row-card{
  display:flex;align-items:stretch;justify-content:space-between;gap:18px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;transition:border-color .15s,box-shadow .15s;
}
.row-card:hover{border-color:#d7e3f8;box-shadow:var(--shadow-sm)}
.rc-main{min-width:0;flex:1}
.rc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.rc-no{font-size:12px;color:var(--ink-4);font-family:ui-monospace,Menlo,Consolas,monospace}
.rc-title{font-size:15px;font-weight:600;color:var(--ink);line-height:1.45;word-break:break-word}
.rc-title a{color:inherit}
.rc-title a:hover{color:var(--brand)}
.rc-pkg{font-size:13px;color:var(--ink-3);font-weight:400}
.rc-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:7px;font-size:12.5px;color:var(--ink-3)}
.rc-meta b{color:var(--ink-2);font-weight:500}
.rc-side{
  display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;
  flex:none;min-width:132px;
}
.rc-amount{font-size:18px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

/* 服务卡 */
.svc-hero{
  background:linear-gradient(135deg,#1e40af 0%,#2563eb 55%,#3b82f6 100%);
  border-radius:var(--radius-lg);padding:24px;color:#fff;margin-bottom:16px;box-shadow:var(--shadow-md);
}
.svc-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.svc-hero h1{font-size:22px;color:#fff;letter-spacing:-.3px}
.svc-account{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;opacity:.85;margin:6px 0 0}
.svc-state{
  display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);font-size:12.5px;font-weight:600;color:#fff;
}
.svc-state-ok{background:rgba(16,185,129,.28);border-color:rgba(110,231,183,.5)}
.svc-state-danger{background:rgba(239,68,68,.3);border-color:rgba(252,165,165,.5)}
.svc-state-warn{background:rgba(245,158,11,.28);border-color:rgba(253,230,138,.5)}
.svc-hero-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.svc-hero-grid>div{min-width:0}
.svc-hero-grid label{display:block;font-size:12px;color:rgba(255,255,255,.68);margin-bottom:3px}
.svc-hero-grid b{font-size:13.5px;font-weight:600;color:#fff;word-break:break-all;line-height:1.5}
.svc-remote{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}
.svc-remote-input{
  flex:1;min-width:0;height:38px;border-radius:var(--radius-sm)!important;
  background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.24)!important;
  color:#fff!important;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px!important;
}
.svc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}
.svc-card>h2{
  font-size:14px;padding:13px 20px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:8px;
}
.svc-card>h2::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand)}
.svc-row{
  display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line-2);
}
.svc-row:last-of-type{border-bottom:0}
.svc-row>label{width:86px;flex:none;color:var(--ink-3);font-size:13px}
.svc-row>input{flex:1;min-width:0;height:36px;font-size:13px;background:var(--surface-2)}
.svc-row>span{color:var(--ink-2);font-size:13.5px;word-break:break-all}
.svc-mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.svc-tip{font-size:12px;color:var(--ink-4);padding:0 20px 14px;margin:0}
.svc-actions{display:flex;gap:10px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--line-2);background:var(--surface-2)}

/* ---------- 余额 ---------- */
.bal-hero{
  display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center;
  background:linear-gradient(135deg,#111c33 0%,#1e293b 60%,#0f172a 100%);
  border-radius:var(--radius-lg);padding:24px 26px;color:#fff;margin-bottom:16px;box-shadow:var(--shadow-md);
}
.bal-label{font-size:12.5px;color:rgba(255,255,255,.6);display:block;margin-bottom:4px}
.bal-amount{font-size:38px;font-weight:700;letter-spacing:-1.2px;line-height:1.1;font-variant-numeric:tabular-nums}
.bal-amount i{font-size:18px;font-style:normal;font-weight:600;margin-right:3px;opacity:.8}
.bal-tip{font-size:12px;color:rgba(255,255,255,.55);margin:8px 0 0;line-height:1.6}
.bal-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bh-stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:12px}
.bh-stat span{display:block;font-size:11.5px;color:rgba(255,255,255,.6);margin-bottom:3px}
.bh-stat b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}

.bal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}
.bal-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line-2);
}
.bal-card-head h2{font-size:14px;display:flex;align-items:center;gap:8px}
.bal-card-head h2::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand)}
.bal-card-note{font-size:12.5px;color:var(--ink-4)}

.redeem-form{display:flex;gap:10px;padding:16px 20px 10px;flex-wrap:wrap}
.redeem-input{flex:1;min-width:220px;height:40px;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;text-transform:uppercase}
.redeem-form .btn{height:40px;flex:none}
.redeem-help{font-size:12px;color:var(--ink-4);padding:0 20px 16px;margin:0;line-height:1.7}
.redeem-result{margin:0 20px 14px;font-size:13px}
.redeem-result.flash{margin-bottom:14px}

.bal-table-wrap{overflow-x:auto}
.bal-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.bal-table th{
  text-align:left;font-weight:500;font-size:12px;color:var(--ink-3);background:var(--surface-2);
  padding:9px 16px;border-bottom:1px solid var(--line);white-space:nowrap;
}
.bal-table td{padding:11px 16px;border-bottom:1px solid var(--line-2);color:var(--ink-2)}
.bal-table tr:last-child td{border-bottom:0}
.bal-table tbody tr:hover{background:#fafcff}
.bal-time{color:var(--ink-4);font-size:12.5px;white-space:nowrap}
.bal-remark{color:var(--ink-3);max-width:320px}
.bal-after{color:var(--ink-2);font-variant-numeric:tabular-nums}
.bal-tag{display:inline-flex;height:20px;align-items:center;padding:0 7px;border-radius:4px;font-size:11.5px;font-weight:500}
.bal-tag-in{background:var(--ok-l);color:#0a7c55}
.bal-tag-out{background:var(--danger-l);color:#b91c1c}
.bal-empty{padding:52px 20px;text-align:center}
.bal-empty-icon{width:44px;height:44px;margin:0 auto 12px;color:var(--ink-4)}
.bal-empty-icon svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.4}
.bal-empty p{font-size:14px;color:var(--ink-2);margin-bottom:4px}
.bal-empty span{font-size:12.5px;color:var(--ink-4)}
.bal-pager,.coupon-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 20px;border-top:1px solid var(--line-2);flex-wrap:wrap}
.bal-pager-info,.coupon-pager-info{font-size:12.5px;color:var(--ink-4)}
.bal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* ---------- 优惠券 ---------- */
.coupon-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cs-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.cs-item span{display:block;font-size:12.5px;color:var(--ink-3);margin-bottom:4px}
.cs-item b{font-size:24px;font-weight:700;letter-spacing:-.5px;color:var(--ink);font-variant-numeric:tabular-nums}
.cs-main{border-color:var(--brand-l2);background:var(--brand-l)}
.cs-main b{color:var(--brand)}
.cs-saved b{color:var(--danger)}

.coupon-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}
.coupon-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line-2)}
.coupon-card-head h2{font-size:14px;display:flex;align-items:center;gap:8px}
.coupon-card-head h2::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand)}
.coupon-card-note{font-size:12.5px;color:var(--ink-4)}
.coupon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;padding:16px 20px}
.coupon-ticket{
  display:flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface);
  transition:border-color .15s,box-shadow .15s;
}
.coupon-ticket:hover{border-color:var(--brand-l2);box-shadow:var(--shadow-sm)}
.ct-left{
  width:112px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:linear-gradient(160deg,#fff1f2,#ffe4e6);color:var(--danger);border-right:1px dashed var(--line);
  padding:14px 8px;position:relative;
}
.ct-left::before,.ct-left::after{
  content:"";position:absolute;right:-5px;width:10px;height:10px;border-radius:50%;background:var(--surface);
  border:1px solid var(--line);
}
.ct-left::before{top:-5px}
.ct-left::after{bottom:-5px}
.ct-amount{display:flex;align-items:baseline;gap:1px;line-height:1}
.ct-num{font-size:26px;font-weight:700;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.ct-unit{font-size:13px;font-weight:600}
.ct-cond{font-size:11px;color:#9f1239;opacity:.8;text-align:center;line-height:1.4;margin-top:3px}
.ct-right{flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.ct-name{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-meta{font-size:12px;color:var(--ink-3);line-height:1.55;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ct-expire{color:var(--ink-4)}
.ct-foot{margin-top:auto;padding-top:8px}
.ct-state{font-size:11.5px;padding:1px 7px;border-radius:4px;font-weight:500}
.ct-state-unused{background:var(--ok-l);color:#0a7c55}
.ct-state-used{background:#f1f5f9;color:var(--ink-4)}
.ct-state-expired{background:#f1f5f9;color:var(--ink-4)}
.ct-usedat{font-size:12px;color:var(--ink-4)}
.coupon-mine.is-used,.coupon-mine.is-expired{opacity:.72}
.coupon-mine.is-used .ct-left,.coupon-mine.is-expired .ct-left{background:#f8fafc;color:var(--ink-4)}
.coupon-empty{padding:48px 20px;text-align:center}
.ce-icon{width:40px;height:40px;margin:0 auto 10px;color:var(--ink-4)}
.ce-icon svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:1.4}
.coupon-empty p{font-size:14px;color:var(--ink-2);margin-bottom:4px}
.coupon-empty span{font-size:12.5px;color:var(--ink-4)}
.coupon-toast{
  position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:9999;
  padding:10px 18px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);
  background:var(--surface);border:1px solid var(--line);font-size:13px;
}

/* ---------- 市场 ---------- */
.market-hero{
  background:linear-gradient(135deg,#0f172a 0%,#1e293b 70%,#334155 100%);
  border-radius:var(--radius-lg);padding:26px 28px;color:#fff;margin-bottom:18px;
}
.market-hero h1{font-size:24px;color:#fff;letter-spacing:-.4px;margin-bottom:6px}
.market-hero p{font-size:13px;color:rgba(255,255,255,.7);margin:0;line-height:1.7}
.market-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.market-nav a{
  display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--line);font-size:13px;color:var(--ink-2);
}
.market-nav a:hover{border-color:var(--brand);color:var(--brand)}
.market-nav a.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:500}

.wd-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px 20px}
.wd-form .full{grid-column:1/-1}
.wd-preview{font-size:12.5px;color:var(--ink-3);line-height:1.7;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}

/* ---------- 认证页 ---------- */
.auth-page{display:flex;justify-content:center;padding:44px 20px 60px}
.auth-card{
  width:100%;max-width:430px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:30px 28px;box-shadow:var(--shadow-sm);
}
.auth-head{text-align:center;margin-bottom:22px}
.auth-head h1{font-size:22px;letter-spacing:-.3px;margin-bottom:6px}
.auth-head p{font-size:13px;color:var(--ink-3);margin:0;line-height:1.6}
.auth-foot{text-align:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2);font-size:13px;color:var(--ink-3)}
.captcha-img{border-radius:var(--radius-sm);border:1px solid var(--line);cursor:pointer;flex:none;object-fit:cover}

/* ---------- 活动 ---------- */
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.act-card{
  display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .15s;
}
.act-card:hover{border-color:var(--brand-l2);box-shadow:var(--shadow-md);transform:translateY(-2px);color:var(--ink)}
.act-cover{
  display:block;height:132px;background:linear-gradient(135deg,#1e40af,#3b82f6);
  background-size:cover;background-position:center;position:relative;
}
.act-cover-plain{background:linear-gradient(135deg,#1e40af,#3b82f6)}
.act-badge{
  position:absolute;left:12px;top:12px;background:rgba(255,255,255,.92);color:var(--brand);
  font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;
}
.act-body{display:block;padding:14px 16px}
.act-name{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}
.act-sub{display:block;font-size:12.5px;color:var(--ink-3);margin-top:3px;line-height:1.5;
  -webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;display:-webkit-box}
.act-meta{display:block;font-size:12px;color:var(--ink-4);margin-top:8px}

.act-hero{
  border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,#1e40af,#3b82f6);
  background-size:cover;background-position:center;color:#fff;padding:34px 28px;margin-bottom:18px;
}
.act-hero h1{font-size:26px;color:#fff;letter-spacing:-.5px;margin-bottom:8px}
.act-hero p{font-size:13.5px;color:rgba(255,255,255,.82);margin:0 0 4px;line-height:1.7}
.act-hero-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:12.5px;color:rgba(255,255,255,.8)}
.act-hero-meta span{display:inline-flex;align-items:center;gap:5px}

/* ---------- 404 ---------- */
.err-page{text-align:center;padding:80px 20px}
.err-code{font-size:72px;font-weight:800;letter-spacing:-3px;color:var(--brand-l2);line-height:1}
.err-page h1{font-size:20px;margin:10px 0 6px}
.err-page p{color:var(--ink-3);font-size:13.5px;margin-bottom:20px}
.err-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ============ 4.1 旧模板兼容层（用户市场等页面沿用 1.9.13 类名） ============ */
.listing-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start;padding-top:18px}
.listing-layout.cat-plain{grid-template-columns:minmax(0,1fr)}
.listing-layout>.cat-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.cat-panel-head{display:flex;align-items:center;gap:8px;padding:13px 16px;border-bottom:1px solid var(--line-2)}
.cat-panel-head h3{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.cph-bar{width:3px;height:14px;border-radius:2px;background:var(--brand)}
.cph-more{margin-left:auto;font-size:12.5px}
.cat-card-list{padding:6px;display:grid;gap:2px}
.cat-card-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;padding:14px}
.cat-card{
  display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:6px;
  color:var(--ink-2);font-size:13.5px;border:1px solid transparent;
}
.cat-card:hover{background:var(--surface-2);color:var(--ink)}
.cat-card.is-active{background:var(--brand-l);border-color:var(--brand-l2);color:var(--brand);font-weight:600}
.cc-ico{width:26px;height:26px;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--brand-l);color:var(--brand)}
.cc-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.cc-ico-dot{background:var(--surface-2);border:1px solid var(--line)}
.cc-dot{width:6px;height:6px;border-radius:50%;background:var(--brand-l2)}
.cc-body{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-name{font-size:13.5px;font-weight:500;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-desc{font-style:normal;font-size:11.5px;color:var(--ink-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-count{font-size:12px;color:var(--ink-4);background:var(--surface-2);border-radius:999px;padding:0 7px;flex:none}
.cc-price{margin-left:auto;color:var(--danger);font-weight:600;font-size:13px;flex:none}

.product-card{
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px;position:relative;transition:border-color .18s,box-shadow .18s,transform .18s;
}
.product-card:hover{border-color:var(--brand-l2);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.product-head h3{font-size:16px;font-weight:600;line-height:1.4;margin-bottom:4px}
.product-subtitle{font-size:12.5px;color:var(--ink-3);margin:0;line-height:1.5}
.product-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.product-price{display:flex;align-items:baseline;gap:3px;margin:14px 0 4px;color:var(--danger)}
.product-price .cur{font-size:14px;font-weight:600}
.product-price .num{font-size:28px;font-weight:700;letter-spacing:-.6px;line-height:1;font-variant-numeric:tabular-nums}
.product-price .origin{font-size:12.5px;color:var(--ink-4);text-decoration:line-through;margin-left:6px;font-weight:400}
.product-price .pkg-from{font-size:12px;color:var(--ink-4);margin-left:2px;font-weight:400}
.product-spec{font-size:12.5px;color:var(--ink-3);line-height:1.6;margin:8px 0 0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:20px}
.product-meta{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--line);display:grid;gap:6px}
.product-meta li{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ink-3)}
.product-meta b{font-weight:600;color:var(--ink-2)}
.product-meta+p{margin-top:12px}
.discount-badge{position:absolute;top:-1px;right:14px;background:var(--danger);color:#fff;font-size:11px;
  padding:3px 8px;border-radius:0 0 4px 4px;font-weight:500}

/* 市场详情沿用旧两栏结构 */
.product-detail{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:22px;align-items:start;padding-top:18px}
.pd-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:16px}
.pd-head h1{font-size:24px;letter-spacing:-.4px;line-height:1.35;margin-bottom:6px}
.pd-head .product-tags{margin-top:10px}
.pd-price-side{display:flex;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}
.pd-price-side b{color:var(--ink-2)}
.pd-deliver-note{
  margin-top:16px;padding:12px 14px;background:var(--brand-l);border:1px solid var(--brand-l2);
  border-radius:var(--radius-sm);font-size:13px;color:#1e40af;line-height:1.7;
}
.pd-deliver-note b{font-weight:600}
.pd-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-2)}
.pd-section h3{font-size:14px;margin-bottom:10px}
.pd-aside{position:sticky;top:calc(var(--header-h) + 16px)}
.buy-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}
.buy-price{display:flex;align-items:baseline;gap:2px;color:var(--danger);margin-bottom:6px}
.buy-price .cur{font-size:15px;font-weight:600}
.buy-price .num{font-size:30px;font-weight:700;letter-spacing:-.8px;line-height:1.1;font-variant-numeric:tabular-nums}
.other-products .op-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:6px;font-size:13px;color:var(--ink-2)}
.other-products .op-item:hover{background:var(--surface-2);color:var(--ink)}
.other-products .op-price{color:var(--danger);font-weight:600}

/* 交易列表（市场 / 旧订单列表结构） */
.order-page{padding-top:18px}
.order-list{display:grid;gap:12px}
.order-item{
  display:flex;align-items:stretch;justify-content:space-between;gap:18px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;
}
.order-item:hover{border-color:#d7e3f8;box-shadow:var(--shadow-sm)}
.oi-main{min-width:0;flex:1}
.oi-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.oi-no{font-size:12px;color:var(--ink-4);font-family:ui-monospace,Menlo,Consolas,monospace}
.oi-product{font-size:15px;font-weight:600;color:var(--ink);line-height:1.45;word-break:break-word}
.oi-pkg{font-size:13px;color:var(--ink-3);font-weight:400}
.oi-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:7px;font-size:12.5px;color:var(--ink-3)}
.oi-meta b{color:var(--ink-2);font-weight:500}
.oi-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;flex:none;min-width:132px}
.oi-amount{font-size:18px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.oi-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

/* 旧详情卡 */
.detail-page{padding-top:18px}
.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:16px}
.detail-card h2,.detail-card h3{font-size:15px;margin-bottom:12px}
.dc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.dc-head h1{font-size:20px}
.dc-pending{padding:14px;background:var(--warn-l);border:1px solid #fae3b6;border-radius:var(--radius-sm);margin-top:14px}
.dc-pending p{color:#a15c07;margin-bottom:10px;font-size:13px}
.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.help-card ol{font-size:13.5px;color:var(--ink-2);line-height:1.9;padding-left:18px;margin:0}
.panel-info-card .pi-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.pi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pi-item{min-width:0}
.pi-item.full{grid-column:1/-1}
.pi-item label{display:block;font-size:12px;color:var(--ink-3);margin-bottom:5px}
.pi-value{display:flex;gap:8px;align-items:center}
.pi-value input{flex:1;min-width:0;height:36px;font-size:13px;background:var(--surface-2)}
.pi-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2)}
.pi-tip{font-size:12px;color:var(--ink-4)}
.mnbt-oneclick{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}

@media (max-width:900px){
  .listing-layout,.product-detail{grid-template-columns:minmax(0,1fr)}
  .listing-layout>.cat-panel,.pd-aside{position:static}
}
@media (max-width:768px){
  .product-card{padding:14px}
  .product-head h3{font-size:14.5px}
  .product-price .num{font-size:23px}
  .product-detail{padding-top:12px}
  .pd-card{padding:16px}
  .pd-head h1{font-size:19px}
  .order-item{flex-direction:column;gap:12px;padding:14px}
  .oi-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%;
    padding-top:12px;border-top:1px solid var(--line-2)}
  .oi-amount{font-size:16px}
  .oi-actions{flex:1;justify-content:flex-end}
  .pi-grid{grid-template-columns:minmax(0,1fr)}
  .detail-card{padding:16px}
  .cat-card-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* ============ 4.2 零散容器与工具类（兼容旧模板） ============ */
.hero-copy{min-width:0}
.balance-page,.pay-page,.order-page{padding-top:0}
.bal-hero-main{min-width:0}
.pi-note{font-size:12px;color:var(--ink-4)}
.radio{
  display:flex;align-items:flex-start;gap:9px;cursor:pointer;
  padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);font-size:13.5px;color:var(--ink-2);
}
.radio:hover{border-color:#cbd5e1}
.radio input{margin-top:2px;flex:none}
.pf-radio{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2)}
.coupon-ticket.is-disabled{opacity:.6}
.coupon-ticket.is-disabled .ct-left{background:#f8fafc;color:var(--ink-4)}

/* 后台复用的零散类（原 app.css 提供，重写后保持） */
.empty-line{padding:40px 20px;text-align:center;color:var(--ink-4);font-size:13.5px;background:transparent;border:0}
.section-head small{margin-left:8px;font-size:12px;font-weight:400;color:var(--ink-4)}

/* 商品详情：移动端固定购买条 */
.pd-mobile-bar{display:none}
@media (max-width:768px){
  .pd-mobile-bar{
    display:flex;align-items:center;gap:12px;
    position:fixed;left:0;right:0;bottom:calc(54px + env(safe-area-inset-bottom));z-index:44;
    padding:9px 14px;background:rgba(255,255,255,.98);border-top:1px solid var(--line);
    box-shadow:0 -6px 20px -12px rgba(15,23,42,.3);backdrop-filter:blur(8px);
  }
  .pd-mobile-bar .pb-info{display:flex;flex-direction:column;min-width:0}
  .pd-mobile-bar .pb-price{font-size:19px;font-weight:700;color:var(--danger);line-height:1.2;font-variant-numeric:tabular-nums}
  .pd-mobile-bar .pb-label{font-size:11px;color:var(--ink-4);line-height:1.3}
  .pd-mobile-bar .btn{flex:1;height:42px}
}

/* ========================= 5. 响应式 ========================= */
@media (max-width:1080px){
  .pd{grid-template-columns:minmax(0,1fr) 330px}
  .hero h1{font-size:32px}
  .footer-grid{grid-template-columns:1.4fr 1fr 1.2fr;gap:28px}
  .footer-grid>div:last-child{grid-column:1/-1}
}

@media (max-width:900px){
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:28px;padding:36px 20px 32px}
  .hero-card{max-width:520px}
  .pd{grid-template-columns:minmax(0,1fr)}
  .pd-side{position:static}
  .pay-wrap{grid-template-columns:minmax(0,1fr)}
  .listing{grid-template-columns:minmax(0,1fr)}
  .listing-aside{display:none}
  .cat-scroll{display:flex}
  .feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .account{grid-template-columns:minmax(0,1fr)}
  .account-aside{position:static}
  .account-user{display:none}
  .account-nav{display:flex;overflow-x:auto;gap:4px;padding:6px}
  .account-nav .an-group{display:none}
  .account-nav a{white-space:nowrap;flex:none;padding:8px 12px}
  .svc-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bal-hero{grid-template-columns:minmax(0,1fr);gap:18px}
  .coupon-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:768px){
  :root{--header-h:56px}
  .wrap{padding:0 14px}
  .header-inner{gap:10px}
  .logo-text{font-size:16px}
  .header-actions .hide-m{display:none}

  .nav-toggle{display:inline-flex}
  .main-nav{
    position:fixed;top:var(--header-h);left:0;right:0;z-index:49;
    flex-direction:column;align-items:stretch;gap:0;background:var(--surface);
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);
    padding:6px 0 14px;max-height:calc(100vh - var(--header-h));overflow-y:auto;
    transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s;
  }
  body.nav-open .main-nav{transform:translateY(0);opacity:1;visibility:visible}
  .main-nav a{height:44px;padding:0 18px;font-size:15px;border-radius:0}
  .main-nav a.active::after{display:none}
  .main-nav a.active{background:var(--brand-l);color:var(--brand);font-weight:600}
  .main-nav .nav-user-name{display:block}
  .nav-register-wrap{display:block;padding:10px 16px 0}
  .nav-register-wrap a{display:flex;height:40px;border-radius:8px}

  .hero{padding-top:4px}
  .hero h1{font-size:27px;letter-spacing:-.6px}
  .hero-sub{font-size:14px}
  .hero-actions .btn{flex:1;min-width:132px}
  .hero-stats{gap:20px}
  .hero-stats strong{font-size:20px}
  .hero-card{max-width:none}

  .section{padding:28px 0 0}
  .section-head h2{font-size:19px}
  .product-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .listing-toolbar{flex-direction:column;align-items:stretch}
  .lt-search{max-width:none;min-width:0}
  .p-card{padding:14px}
  .pc-title{font-size:14.5px}
  .pc-price .num{font-size:23px}
  .pc-meta li{font-size:12px}
  .quick-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .quick-cat{padding:11px 12px;gap:10px}
  .qc-ico{width:32px;height:32px;border-radius:8px}

  .feature-strip{grid-template-columns:minmax(0,1fr)}
  .feature-strip .feat{padding:14px 16px}
  .flow{grid-template-columns:minmax(0,1fr);gap:10px}

  .footer-grid{grid-template-columns:minmax(0,1fr);gap:22px;padding-top:30px;padding-bottom:24px}
  .site-footer{padding-bottom:64px}

  .mobile-tabbar{
    display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:45;
    background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-tabbar a{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    height:54px;font-size:11px;color:var(--ink-3);
  }
  .mobile-tabbar a.on{color:var(--brand);font-weight:600}
  .mobile-tabbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

  .page-head{padding:16px 0 12px}
  .page-head h1{font-size:19px}
  /* 移动端页头动作按钮换行，避免把标题区撑宽 */
  .page-head,.account-head{flex-direction:column;align-items:stretch;gap:10px}
  .page-head .page-head-actions,.account-head .page-head-actions{width:100%}
  .page-head .page-head-actions,.account-head .page-head-actions{justify-content:flex-start}
  .page-head .page-head-actions .btn,.account-head .page-head-actions .btn{flex:0 0 auto}
  .breadcrumb{padding-top:10px;font-size:12.5px}

  .pd-header{padding:16px}
  .pd-title{font-size:19px}
  .pd-price .num{font-size:27px}
  .pd-price-row{flex-direction:column;align-items:flex-start;gap:12px}
  .pd-stats{gap:10px 18px;width:100%}  .pd-block-body{padding:14px 16px}
  .pd-block-head{padding:12px 16px}
  .spec-table th{width:96px;padding:9px 10px;font-size:12.5px}
  .spec-table td{padding:9px 10px;font-size:12.5px}
  .bp-head{padding:14px 16px}
  .bp-body{padding:14px 16px}
  .bp-foot{padding:0 16px 14px}

  .pay-card{padding:16px}
  .pay-amount .value{font-size:26px}
  .qr-box canvas{width:180px;height:180px}

  .account-head h1{font-size:18px}
  .row-card{flex-direction:column;gap:12px;padding:14px}
  .rc-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%;min-width:0;
    padding-top:12px;border-top:1px solid var(--line-2)}
  .rc-amount{font-size:16px}
  .rc-actions{flex:1;justify-content:flex-end}

  .svc-hero{padding:18px}
  .svc-hero h1{font-size:18px}
  .svc-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .svc-row{flex-wrap:wrap;padding:12px 16px;gap:8px}
  .svc-row>label{width:100%;margin-bottom:-2px}
  .svc-row>input{width:100%;flex:1 1 100%}
  .svc-actions{padding:12px 16px}

  .bal-hero{padding:18px}
  .bal-amount{font-size:30px}
  .bal-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .bh-stat{padding:9px}
  .bh-stat b{font-size:13px}
  .redeem-form{padding:14px 16px 8px}
  .redeem-form .btn{width:100%}

  .coupon-grid{grid-template-columns:minmax(0,1fr);padding:14px 16px}
  .coupon-summary{gap:10px}
  .cs-item{padding:12px 14px}
  .cs-item b{font-size:20px}

  .act-hero{padding:22px 18px}
  .act-hero h1{font-size:20px}
  .act-grid{grid-template-columns:minmax(0,1fr)}

  .auth-page{padding:24px 14px 40px}
  .auth-card{padding:22px 18px}

  .steps{overflow-x:auto;padding-bottom:4px}
  .steps .step+.step::before{width:22px;margin:0 7px}

  .modal-mask{padding:14px}
  .announce-modal{max-width:none}
  .am-body{max-height:60vh}

  .err-page{padding:56px 16px}
  .err-code{font-size:56px}

  .wd-form{grid-template-columns:minmax(0,1fr)}
}

@media (max-width:420px){
  .hero h1{font-size:24px}
  .product-grid{grid-template-columns:minmax(0,1fr)}
  .quick-cats{grid-template-columns:minmax(0,1fr)}
  .coupon-summary{grid-template-columns:minmax(0,1fr)}
  .svc-hero-grid{grid-template-columns:minmax(0,1fr)}
  .bal-hero-stats{grid-template-columns:minmax(0,1fr)}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ============================================================================
   6. 主题皮肤回归层（2.0）
   ----------------------------------------------------------------------------
   目标：保留第 1~5 节的「新布局与交互」，视觉皮肤回到原版樱花粉双主题：
        · 配色 / 柔光阴影 / 大圆角 / 胶囊按钮 / 渐变文字 与原版一致
        · 插画位（Hero、登录页、详情底纹、空状态、余额、流程、页脚）全部回归
        · 支持 data-theme="bluecat" 一键切换蓝白猫娘主题
   说明：本层写在文件末尾，依靠层叠顺序覆盖前面的商务风取值。
   ========================================================================== */

/* ---------- 6.1 主题变量（原版樱花粉） ---------- */
:root{
  --bg:#fffafb;
  --bg-soft:#fff4f7;
  --bg-pink:#ffeef3;
  --card:#ffffff;
  --card-hover:#fffafc;
  --border:#ffe0e9;
  --border-soft:#fff0f4;

  --text:#4a3a42;
  --text-sub:#8d7680;
  --text-dim:#b6a1aa;

  --primary:#ff8aa8;
  --primary-dark:#f56f92;
  --primary-deep:#e05a7e;
  --primary-soft:#ffb7c5;
  --primary-ink:#ffffff;
  --primary-glow:rgba(255,138,168,.22);

  --success:#4cc79a;
  --warning:#f0a95c;
  --danger:#f4707c;
  --info:#6fb2e8;
  --lavender:#c9b6f0;

  --radius:16px;
  --radius-sm:10px;
  --radius-xs:7px;
  --radius-pill:999px;
  --radius-lg:20px;

  --shadow-xs:0 1px 4px rgba(255,138,168,.06);
  --shadow-sm:0 2px 8px rgba(255,138,168,.08);
  --shadow:0 8px 28px rgba(255,138,168,.16);
  --shadow-md:0 8px 28px rgba(255,138,168,.16);
  --shadow-lg:0 18px 48px rgba(255,138,168,.22);
  --shadow-glow:0 6px 20px rgba(255,138,168,.38);

  --img-hero:url('../img/hero-sakura.webp');
  --img-pd:url('../img/pd-maid.webp');
  --img-auth:url('../img/auth-chibi.webp');
  --img-auth-side:url('../img/auth-cosmos.webp');
  --img-empty:url('../img/empty-state.webp');
  --img-steps:url('../img/bal-kotori.webp');
  --img-balance:url('../img/bal-guitar.webp');
  --img-hero-m:none;
  --img-notice:none;
  --img-pay:none;
  --img-order:none;
  --img-detail:none;
  --img-user:none;
  --img-coupon:none;
  --img-error:none;
  --img-foot:none;
  --logo-mark:url('../img/logo-mark.png');
  --logo-glow:0 3px 10px rgba(255,138,168,.35);

  --glow-1:rgba(255,183,197,.40);
  --glow-2:rgba(201,182,240,.22);
  --glow-3:rgba(255,183,197,.26);

  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular","Cascadia Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace;

  /* 语义映射：新布局里的变量名统一指向原主题色 */
  --brand:var(--primary);
  --brand-d:var(--primary-deep);
  --brand-l:var(--bg-pink);
  --brand-l2:var(--primary-soft);
  --ink:var(--text);
  --ink-2:var(--text);
  --ink-3:var(--text-sub);
  --ink-4:var(--text-dim);
  --line:var(--border);
  --line-2:var(--border-soft);
  --surface:var(--card);
  --surface-2:var(--bg-soft);
  --ok:var(--success);
  --ok-l:#f2fbf7;
  --warn:var(--warning);
  --warn-l:#fffaf3;
  --danger-l:#fff5f6;
  --info:var(--info);
  --info-l:#f4faff;
  --header-h:62px;
  --wrap:1180px;
}

/* ---------- 6.2 蓝白猫娘主题（原版 1.7.11 色板与插画） ---------- */
html[data-theme="bluecat"]{
  --bg:#f8fbff;
  --bg-soft:#eef6ff;
  --bg-pink:#e6f2ff;
  --card:#ffffff;
  --card-hover:#f6faff;
  --border:#d8e9fb;
  --border-soft:#eaf3fd;

  --text:#33414f;
  --text-sub:#6a7f93;
  --text-dim:#9db0c2;

  --primary:#6bb6ef;
  --primary-dark:#4d9ad8;
  --primary-deep:#3480bf;
  --primary-soft:#a9d5f5;
  --primary-ink:#ffffff;
  --primary-glow:rgba(107,182,239,.24);

  --info:#6bb6ef;
  --lavender:#b3c7f0;

  --shadow-xs:0 1px 4px rgba(107,182,239,.08);
  --shadow-sm:0 2px 8px rgba(107,182,239,.10);
  --shadow:0 8px 28px rgba(107,182,239,.18);
  --shadow-md:0 8px 28px rgba(107,182,239,.18);
  --shadow-lg:0 18px 48px rgba(107,182,239,.24);
  --shadow-glow:0 6px 20px rgba(107,182,239,.40);

  --img-hero:url('../img/bluecat/hero-cat.webp');
  --img-pd:url('../img/bluecat/pd-cat.webp');
  --img-auth:url('../img/bluecat/auth-chibi.webp');
  --img-auth-side:url('../img/bluecat/auth-side-cat.webp');
  --img-empty:url('../img/bluecat/empty-cat.webp');
  --img-steps:url('../img/bluecat/steps-cat.webp');
  --img-balance:url('../img/bluecat/balance-cat.webp');
  --img-hero-m:url('../img/bluecat/hero-m-cat.webp');
  --img-notice:url('../img/bluecat/notice-cat.webp');
  --img-pay:url('../img/bluecat/pay-cat.webp');
  --img-order:url('../img/bluecat/order-cat.webp');
  --img-detail:url('../img/bluecat/detail-cat.webp');
  --img-user:url('../img/bluecat/user-cat.webp');
  --img-coupon:url('../img/bluecat/coupon-cat.webp');
  --img-error:url('../img/bluecat/error-cat.webp');
  --img-foot:url('../img/bluecat/foot-cat.webp');
  --logo-mark:url('../img/bluecat/logo-mark.png');
  --logo-glow:0 3px 10px rgba(107,182,239,.40);

  --glow-1:rgba(169,213,245,.50);
  --glow-2:rgba(138,196,240,.26);
  --glow-3:rgba(169,213,245,.34);

  --ok-l:#f2fbf7;
  --warn-l:#fffaf3;
  --danger-l:#fff5f6;
  --info-l:#f4faff;
}

/* ---------- 6.3 基础排版与背景光斑 ---------- */
body{
  font-family:var(--sans);
  font-size:14.5px;
  line-height:1.7;
  color:var(--text);
  background:
    radial-gradient(900px 520px at 8% -6%,var(--glow-1),transparent 62%),
    radial-gradient(760px 480px at 96% 4%,var(--glow-2),transparent 60%),
    radial-gradient(880px 620px at 50% 104%,var(--glow-3),transparent 62%),
    var(--bg);
  background-attachment:fixed;
  transition:background-color .28s ease,color .28s ease;
}
.wrap{max-width:var(--wrap);padding:0 24px}
.site-main{padding-bottom:64px}
a{color:inherit}
a:hover{color:var(--primary-deep)}
h1,h2,h3,h4{color:var(--text)}
.mono,.svc-mono,.order-no,.rc-no,.bal-table .bal-after,.hc-list dd.is-key,.redeem-input{
  font-family:var(--mono);font-variant-numeric:tabular-nums;
}

/* ---------- 6.4 按钮：胶囊 + 粉渐变 + 光晕 ---------- */
.btn{
  height:auto;padding:10px 20px;border-radius:var(--radius-pill);
  border:1px solid transparent;font-size:13.5px;font-weight:600;line-height:1.4;
  background:transparent;color:var(--text-sub);
  transition:transform .16s cubic-bezier(.34,1.4,.64,1),box-shadow .16s,background .16s,color .16s,border-color .16s;
}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-primary{
  background:linear-gradient(135deg,#ffa3bb 0%,var(--primary) 50%,var(--primary-dark) 100%);
  border-color:transparent;color:var(--primary-ink);box-shadow:var(--shadow-glow);
}
.btn-primary:hover{
  background:linear-gradient(135deg,#ffa3bb 0%,var(--primary) 50%,var(--primary-dark) 100%);
  color:var(--primary-ink);box-shadow:0 10px 28px rgba(255,138,168,.48);transform:translateY(-1.5px);
}
html[data-theme="bluecat"] .btn-primary:hover{box-shadow:0 10px 28px rgba(107,182,239,.5)}
.btn-primary:disabled,.btn-primary.disabled,.btn.disabled{
  opacity:.45;background:linear-gradient(135deg,#ffa3bb,var(--primary-dark));box-shadow:none;pointer-events:none;
}
.btn-outline{background:var(--card);border-color:var(--border);color:var(--primary-deep);box-shadow:var(--shadow-sm)}
.btn-outline:hover{border-color:var(--primary-soft);background:var(--bg-soft);color:var(--primary-deep);transform:translateY(-1.5px)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text-sub);box-shadow:none}
.btn-ghost:hover{background:var(--bg-pink);color:var(--primary-deep)}
.btn-danger{background:var(--card);color:var(--danger);border-color:#ffd6da;box-shadow:var(--shadow-sm)}
.btn-danger:hover{background:#fff1f2;border-color:var(--danger);color:var(--danger)}
.btn-warn{background:var(--card);color:var(--warning);border-color:#ffe4c6;box-shadow:var(--shadow-sm)}
.btn-warn:hover{background:#fff8ef;border-color:var(--warning);color:var(--warning)}
.btn-copy{background:var(--card);color:var(--primary-deep);border-color:var(--border);box-shadow:var(--shadow-sm)}
.btn-copy:hover{background:var(--bg-soft);border-color:var(--primary-soft);color:var(--primary-deep)}
.btn-sm{padding:7px 15px;font-size:12.5px}
.btn-xs{padding:4px 10px;font-size:12px;border-radius:var(--radius-xs)}
.btn-lg{padding:13px 30px;font-size:14.5px}
.btn-block{display:flex;width:100%}

/* ---------- 6.5 卡片 / 面板 ---------- */
.card,.panel,.p-card,.product-card,.svc-card,.row-card,.detail-card,.pd-card,.pd-header,.pd-block,
.bal-card,.coupon-card,.side-panel,.account-nav,.account-user,.pay-card,.buy-panel,.table,.form-item>input{
  border-color:var(--border);
}
.card,.panel,.svc-card,.bal-card,.coupon-card,.side-panel,.account-nav,.account-user,.pay-card,.buy-panel{
  border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--card);
}
.panel-head,.svc-card>h2,.coupon-card-head,.bal-card-head,.side-head{border-bottom:1px dashed var(--border)}
.panel-foot,.svc-actions,.bal-pager,.coupon-pager{border-top:1px dashed var(--border);background:var(--bg-soft)}
.card-title,.panel-title,.svc-card>h2,.coupon-card-head h2,.bal-card-head h2,.side-head{
  color:var(--primary-deep);font-weight:700;
}
.svc-card>h2::before,.coupon-card-head h2::before,.bal-card-head h2::before,.pd-block-head::before,
.cph-bar,.account-head h1::after{background:linear-gradient(180deg,var(--primary),var(--primary-soft))}

/* 列表卡片 */
.row-card{border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px 22px}
.row-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-soft)}
.rc-amount{color:var(--primary-deep)}
.oi-amount{color:var(--primary-deep)}

/* 商品卡：顶部渐变条 + 上浮 */
.p-card,.product-card{
  border-radius:var(--radius);padding:24px 22px;box-shadow:var(--shadow-sm);
  transition:transform .2s cubic-bezier(.34,1.3,.64,1),box-shadow .2s,border-color .2s;
}
.p-card::before,.product-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  border-radius:var(--radius) var(--radius) 0 0;
  background:linear-gradient(90deg,var(--primary-soft),var(--primary),var(--lavender));
  opacity:0;transition:opacity .2s;
}
.p-card:hover,.product-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--primary-soft)}
.p-card:hover::before,.product-card:hover::before{opacity:1}
.pc-title,.product-head h3{font-size:15.5px;font-weight:700;color:var(--text)}
.pc-sub,.product-subtitle{color:var(--text-dim)}
.pc-price .num,.product-price .num{color:var(--primary-deep);font-weight:800}
.pc-price .cur,.product-price .cur{color:var(--primary)}
.pc-price .origin,.product-price .origin{font-family:var(--mono)}
.pc-meta,.product-meta{border-top:1px dashed var(--border)}
.pc-flag,.discount-badge{
  background:linear-gradient(135deg,#fff0f3,#ffe4ea);border:1px solid var(--primary-soft);
  color:var(--primary-deep);border-radius:var(--radius-pill);font-family:var(--mono);font-weight:700;
}
.tag{background:var(--bg-pink);color:var(--primary-deep);border-radius:var(--radius-pill);padding:0 10px;height:23px}
.tag-cat{background:var(--primary-soft);color:#fff}
.badge{border-radius:var(--radius-pill);height:21px;padding:0 9px}
.badge-ok{background:#eafaf3;color:#2f9d75}
.badge-info{background:var(--bg-pink);color:var(--primary-deep)}
.badge-warn{background:#fff6ea;color:#c8823a}
.badge-danger{background:#fff1f2;color:#d95562}
.badge-muted{background:var(--bg-soft);color:var(--text-dim)}
.badge-auto{background:#eafaf3;color:#2f9d75;border-radius:var(--radius-pill)}
.badge-ext{background:#fff6ea;color:#c8823a;border-radius:var(--radius-pill)}
.status-badge{border-radius:var(--radius-pill);height:25px;padding:0 11px}
.status-ok{background:#eafaf3;color:#2f9d75}
.status-info{background:var(--bg-pink);color:var(--primary-deep)}
.status-warn{background:#fff6ea;color:#c8823a}
.status-danger{background:#fff1f2;color:#d95562}
.status-muted{background:var(--bg-soft);color:var(--text-dim)}

/* ---------- 6.6 顶栏 ---------- */
.site-header{
  background:rgba(255,250,251,.88);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid rgba(255,224,233,.9);
}
html[data-theme="bluecat"] .site-header{
  background:rgba(248,251,255,.88);
  border-bottom-color:rgba(216,233,251,.9);
}
.header-inner{gap:26px;height:62px}
.logo-mark{
  width:32px;height:32px;border-radius:50%;
  background:var(--logo-mark) center/contain no-repeat;
  box-shadow:var(--logo-glow);font-size:0;color:transparent;
}
.logo-mark::after{content:none}
.logo-text{font-weight:700;font-size:16px;letter-spacing:.2px}
.main-nav{gap:2px;margin-left:8px}
.main-nav a{
  height:62px;padding:0 14px;font-size:14px;color:var(--text-sub);
  border-bottom:2px solid transparent;
}
.main-nav a:hover{color:var(--primary-deep)}
.main-nav a.active{color:var(--primary-deep);border-bottom-color:var(--primary);font-weight:600}
.main-nav a.active::after{content:none}
.user-chip,.balance-chip{
  font-size:12.5px;padding:5px 13px;border-radius:var(--radius-pill);
  background:var(--bg-pink);border:1px solid var(--border);color:var(--text-sub);box-shadow:none;
}
.balance-chip b{color:var(--primary-deep);font-weight:700;font-family:var(--mono)}
.balance-chip:hover{border-color:var(--primary-soft);box-shadow:var(--shadow-sm);color:var(--primary-deep)}
.member-link{border-radius:var(--radius-pill);border-color:var(--border);background:var(--card);box-shadow:var(--shadow-sm)}
.member-link:hover{border-color:var(--primary-soft);background:var(--bg-soft);color:var(--primary-deep)}
.nav-toggle{border-radius:var(--radius-sm);color:var(--primary-deep);border-color:var(--border);background:var(--card);box-shadow:var(--shadow-sm)}

/* 主题切换按钮 */
.theme-toggle{
  display:inline-flex;align-items:center;gap:6px;height:auto;
  padding:7px 12px;cursor:pointer;line-height:1;font-size:13px;font-family:inherit;
  color:var(--primary-deep);background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);transition:all .18s;
}
.theme-toggle:hover{border-color:var(--primary-soft);box-shadow:var(--shadow);transform:translateY(-1px)}
.theme-toggle .tt-ico{font-size:15px;line-height:1}
.theme-toggle .tt-label{white-space:nowrap}
.theme-toggle .tt-ico-cat{display:none}
html[data-theme="bluecat"] .theme-toggle .tt-ico-sakura{display:none}
html[data-theme="bluecat"] .theme-toggle .tt-ico-cat{display:inline}

/* ---------- 6.7 Hero 与插画 ---------- */
.hero{
  position:relative;overflow:hidden;
  background:transparent;border-bottom:0;
}
/* 桌面端右侧樱花主视觉 */
.hero::after{
  content:'';position:absolute;right:-2%;bottom:-4%;
  width:min(30vw,430px);height:118%;
  background:var(--img-hero) right bottom/contain no-repeat;
  -webkit-mask-image:linear-gradient(to left,#000 66%,transparent 100%);
  mask-image:linear-gradient(to left,#000 66%,transparent 100%);
  opacity:.97;pointer-events:none;z-index:0;
}
/* 左侧柔光晕，让插画向文字区渐隐 */
.hero::before{
  content:'';position:absolute;top:0;right:0;bottom:0;width:62%;
  pointer-events:none;z-index:0;
  background:linear-gradient(to left,rgba(255,250,251,0) 30%,var(--bg) 78%);
}
html[data-theme="bluecat"] .hero::before{
  background:linear-gradient(to left,rgba(248,251,255,0) 30%,var(--bg) 78%);
}
.hero-inner{position:relative;z-index:1;grid-template-columns:1.1fr .9fr;gap:56px;padding:56px 24px 50px}
.hero-badge{
  background:rgba(255,255,255,.82);border:1px solid var(--border);box-shadow:var(--shadow-sm);
  color:var(--primary-deep);font-size:12px;letter-spacing:.04em;padding:6px 15px;
}
.hero-badge::before{background:var(--primary);box-shadow:0 0 0 4px var(--primary-glow)}
.hero h1{font-size:40px;line-height:1.28;font-weight:800;letter-spacing:-.6px}
.hero h1 span{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 60%,var(--lavender) 130%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--primary-deep);
}
.hero-sub{color:var(--text-sub);font-size:14.5px;line-height:1.95;margin-bottom:30px}
.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  margin-top:40px;padding:24px 0 0;border-top:1px dashed var(--border);
}
.hero-stats>div{padding-right:18px}
.hero-stats>div+div{padding-left:20px;border-left:1px dashed var(--border)}
.hero-stats strong{font-family:var(--mono);font-size:23px;font-weight:700;color:var(--primary-deep)}
.hero-stats span{color:var(--text-dim)}

/* 交付内容卡：毛玻璃 + 白环 */
.hero-card{
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow),0 0 0 6px rgba(255,255,255,.45);
}
.hc-head{background:var(--bg-soft);border-bottom:1px dashed var(--border);color:var(--primary-deep);font-weight:600}
.hc-led{background:var(--primary);box-shadow:0 0 0 4px var(--primary-glow);animation:specPulse 2s ease-in-out infinite}
@keyframes specPulse{
  0%,100%{box-shadow:0 0 0 4px var(--primary-glow)}
  50%{box-shadow:0 0 0 7px rgba(255,138,168,.12)}
}
.hc-list>div{border-bottom:1px dashed var(--border-soft)}
.hc-list dt{color:var(--text-dim)}
.hc-list dd{color:var(--text-sub)}
.hc-list dd.is-key{color:var(--primary-deep);font-weight:600}
.hc-foot{background:var(--bg-soft);color:var(--text-dim);border-top:1px dashed var(--border)}

/* 首页手机端陪伴插画 */
.hero-mascot{display:none}

/* ---------- 6.8 区块标题 ---------- */
.section-head h2{
  font-size:25px;font-weight:800;letter-spacing:-.3px;color:var(--text);
  position:relative;display:inline-block;
}
.section-head h2::after{
  content:'';display:block;width:42px;height:4px;border-radius:2px;margin:10px auto 0;
  background:linear-gradient(90deg,var(--primary-soft),var(--primary),var(--lavender));
}
.section-head.left h2::after{margin-left:0}
.section-head{text-align:left;margin:0 0 28px}
.section-head p{color:var(--text-sub)}
.page-head h1,.account-head h1{font-size:23px;font-weight:800;letter-spacing:-.3px}
.page-head p,.account-head p{color:var(--text-sub)}
.breadcrumb{color:var(--text-dim)}
.breadcrumb a{color:var(--text-sub)}
.breadcrumb em{color:var(--text-sub)}

/* ---------- 6.9 分类入口 / 侧栏 ---------- */
.quick-cat{
  border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;
  transition:transform .2s cubic-bezier(.34,1.3,.64,1),box-shadow .2s,border-color .2s;
}
.quick-cat:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-soft)}
.qc-ico{background:linear-gradient(135deg,var(--bg-pink),#fff);border:1px solid var(--border);color:var(--primary-deep);border-radius:13px;box-shadow:var(--shadow-sm)}
.qc-name{color:var(--text)}
.qc-desc{color:var(--text-dim)}
.qc-count{background:var(--bg-soft);color:var(--text-dim);border-color:var(--border)}
.cat-item{border-radius:var(--radius-xs)}
.cat-item:hover{background:var(--bg-soft);color:var(--primary-deep)}
.cat-item.is-active{background:var(--bg-pink);color:var(--primary-deep);font-weight:600}
.cat-item.is-active .ci-count{background:#fff;color:var(--primary-deep)}
.cat-item .ci-dot{background:var(--primary-soft)}
.side-head{border-bottom:1px dashed var(--border)}
.cat-card{border-radius:var(--radius-xs)}
.cat-card:hover{background:var(--bg-soft);color:var(--primary-deep)}
.cat-card.is-active{background:var(--bg-pink);border-color:var(--primary-soft);color:var(--primary-deep)}
.cc-ico{background:linear-gradient(135deg,var(--bg-pink),#fff);border:1px solid var(--border);color:var(--primary-deep)}
.cc-count{background:var(--bg-soft);color:var(--text-dim)}

/* ---------- 6.10 表单 / 表格 / 提示 ---------- */
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],
input[type=url],input[type=search],input[type=date],input[type=datetime-local],select,textarea{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);
}
input:focus,select:focus,textarea:focus{border-color:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-glow)}
input[readonly]{background:var(--bg-soft);color:var(--text-sub)}
.form-item>label{color:var(--text-sub);font-weight:600}
.form-item small{color:var(--text-dim)}
.kv-table td:first-child{color:var(--text-dim)}
.kv-table tr{border-bottom:1px dashed var(--border-soft)}
.table th,.bal-table th,.spec-table th{background:var(--bg-soft);color:var(--text-dim);border-bottom:1px solid var(--border)}
.table td,.bal-table td,.spec-table td{border-bottom:1px dashed var(--border-soft);color:var(--text-sub)}
.table tbody tr:hover,.bal-table tbody tr:hover{background:var(--card-hover)}
.spec-table th{background:var(--bg-soft)}
.flash,.alert{border-radius:var(--radius-sm);border-left-width:3px;border-left-style:solid}
.flash-success,.alert-success,.alert-ok{background:#f2fbf7;border-color:#d9f2e6;border-left-color:var(--success);color:#2f9d75}
.flash-danger,.alert-danger{background:#fff5f6;border-color:#ffe0e3;border-left-color:var(--danger);color:#d95562}
.flash-warning,.alert-warning{background:#fffaf3;border-color:#ffeacc;border-left-color:var(--warning);color:#c8823a}
.flash-info,.alert-info{background:#f4faff;border-color:#dcecf8;border-left-color:var(--info);color:#4d8fc7}
.notice{border-radius:var(--radius-sm)}
.notice-info{background:#f4faff;border-color:#dcecf8;color:#4d8fc7}
.notice-warning{background:#fffaf3;border-color:#ffeacc;color:#c8823a}
.notice-danger{background:#fff5f6;border-color:#ffe0e3;color:#d95562}
.cat-note{
  display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:var(--radius);
  border:1px solid var(--border);background:linear-gradient(135deg,var(--bg-pink) 0%,#fff 68%);
  box-shadow:var(--shadow-sm);color:var(--text-sub);
}
.cat-note p{font-size:12.5px;line-height:1.8;color:var(--text-sub)}
.cat-note p b{color:var(--primary-deep)}

/* ---------- 6.11 步骤条 / 流程 ---------- */
.steps .step{color:var(--text-dim)}
.steps .step i{background:var(--bg-soft);color:var(--text-dim)}
.steps .step.done{color:var(--text-sub)}
.steps .step.done i{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 3px 10px var(--primary-glow)}
.steps .step+.step::before{background:var(--border)}
.flow-item{border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px 22px;position:relative}
.flow-num{
  width:34px;height:34px;border-radius:12px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:var(--shadow-glow);font-size:13px;
}
.flow-item h4{font-size:15px;font-weight:700}
.flow-item p{color:var(--text-sub);line-height:1.8}
.feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;background:transparent;border:0;border-radius:0;overflow:visible}
.feature-strip .feat{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px 22px;box-shadow:var(--shadow-sm);
  transition:transform .2s cubic-bezier(.34,1.3,.64,1),box-shadow .2s,border-color .2s;
}
.feature-strip .feat:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-soft)}
.feat-icon{
  width:42px;height:42px;border-radius:13px;margin-bottom:16px;
  background:linear-gradient(135deg,var(--bg-pink),#fff);border:1px solid var(--border);
  color:var(--primary-deep);box-shadow:var(--shadow-sm);
}
.feat-icon svg{width:19px;height:19px}
.feat h3{font-size:15px;font-weight:700}
.feat p{color:var(--text-sub);line-height:1.8}
.notice-box{border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.notice-box h3{color:var(--primary-deep)}

/* ---------- 6.12 商品详情 ---------- */
.pd-header,.pd-block{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.pd-header{position:relative;overflow:hidden}
/* 详情右上角陪衬插画 */
.pd-header::after{
  content:'';position:absolute;top:0;right:0;width:300px;height:340px;
  background:var(--img-pd) right top/contain no-repeat;
  -webkit-mask-image:linear-gradient(to left,#000 22%,transparent 88%),linear-gradient(to bottom,#000 40%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left,#000 22%,transparent 88%),linear-gradient(to bottom,#000 40%,transparent 100%);
  mask-composite:intersect;
  opacity:.2;pointer-events:none;
}
.pd-header>*{position:relative;z-index:1}
.pd-title{font-size:25px;font-weight:800;letter-spacing:-.4px}
.pd-sub{color:var(--text-sub)}
.pd-price .num{color:var(--primary-deep);font-weight:800}
.pd-price .cur{color:var(--primary)}
.pd-stats span{color:var(--text-dim)}
.pd-stats b{color:var(--text-sub)}
.pd-block-head{color:var(--primary-deep);font-weight:700}
.pd-desc{color:var(--text-sub)}
.buy-panel{box-shadow:var(--shadow);overflow:hidden}
.bp-head{background:linear-gradient(135deg,var(--bg-pink),#fff);border-bottom:1px dashed var(--border)}
.bp-label{color:var(--text-dim)}
.bp-price .num{color:var(--primary-deep);font-weight:800}
.bp-price .cur{color:var(--primary)}
.po-box{border-radius:var(--radius-sm);border-color:var(--border)}
.pkg-option input:checked+.po-box{
  border-color:var(--primary);background:var(--bg-pink);box-shadow:0 0 0 1px var(--primary) inset;
}
.po-price{color:var(--primary-deep)}
.pm-box{border-radius:var(--radius-sm);border-color:var(--border)}
.pay-method input:checked+.pm-box{border-color:var(--primary);background:var(--bg-pink)}
.pay-method-title,.pkg-select-title{color:var(--text-sub)}
.coupon-deduct,.balance-deduct{background:var(--bg-soft);border-color:var(--border);border-radius:var(--radius-sm)}
.buy-guarantee{border-top:1px dashed var(--border);color:var(--text-dim)}
.buy-guarantee>div::before{background:var(--bg-pink);border-color:var(--primary-soft)}
.realname-hint{background:#fffaf3;border-color:#ffeacc;color:#c8823a;border-radius:var(--radius-sm)}
.other-item{border-radius:var(--radius-xs)}
.other-item:hover{background:var(--bg-soft);color:var(--primary-deep)}

/* ---------- 6.13 收银台 ---------- */
.pay-card{position:relative;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.pay-amount{
  background:linear-gradient(135deg,var(--bg-pink),#fff);
  border:1px solid var(--border);border-radius:var(--radius-sm);
}
.pay-amount .value{color:var(--primary-deep);font-weight:800;font-family:var(--mono)}
.pay-amount .label{color:var(--text-sub)}
.pay-info{border-color:var(--border);border-radius:var(--radius-sm)}
.pay-info>div{border-bottom:1px dashed var(--border-soft)}
.pay-info span{color:var(--text-dim)}
.pay-info b{color:var(--text-sub)}
.pay-channel-switch a{border-radius:var(--radius-pill);border-color:var(--border);color:var(--text-sub);background:var(--card)}
.pay-channel-switch a:hover{border-color:var(--primary-soft);color:var(--primary-deep)}
.pay-channel-switch a.on{
  border-color:transparent;color:#fff;font-weight:600;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:var(--shadow-glow);
}
.qr-box{border-radius:var(--radius);box-shadow:var(--shadow-sm);border-color:var(--border)}
.qr-status{background:var(--bg-soft);border-color:var(--border);color:var(--text-sub)}
.side-sum-row.total{border-top:1px dashed var(--border)}
.side-sum-row.total b{color:var(--primary-deep)}
.demo-pay-box{background:#fffaf3;border-color:#ffeacc;border-radius:var(--radius-sm)}
.demo-title,.demo-pay-box p{color:#c8823a}
.donate-claimed{background:#f2fbf7;border-color:#d9f2e6;border-radius:var(--radius-sm)}
.pay-footer{border-top:1px dashed var(--border)}
.pay-footer a:hover{color:var(--primary-deep)}

/* ---------- 6.14 会员中心 ---------- */
.account-user{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.au-avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary-soft),var(--primary));
  box-shadow:var(--shadow-glow);color:#fff;
}
.au-name{color:var(--text)}
.au-mail{color:var(--text-dim)}
.au-bal{border-top:1px dashed var(--border);color:var(--text-sub)}
.au-bal b{color:var(--primary-deep);font-family:var(--mono)}
.account-nav{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.account-nav .an-group{color:var(--text-dim)}
.account-nav a{color:var(--text-sub);border-radius:var(--radius-xs)}
.account-nav a:hover{background:var(--bg-soft);color:var(--primary-deep)}
.account-nav a.on{background:var(--bg-pink);color:var(--primary-deep);font-weight:600}
.account-nav a .an-ico{opacity:.85}

/* ---------- 6.15 服务 / 余额 / 优惠券 ---------- */
.svc-hero{
  background:linear-gradient(135deg,var(--bg-pink) 0%,#fff 55%,var(--bg-soft) 100%);
  border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);
  border-radius:var(--radius);position:relative;overflow:hidden;
}
.svc-hero h1{color:var(--text);font-size:23px;font-weight:800}
.svc-account{color:var(--text-sub);opacity:1}
.svc-hero-grid label{color:var(--text-dim)}
.svc-hero-grid b{color:var(--text)}
.svc-state{
  background:var(--bg-soft);border:1px solid var(--border);color:var(--primary-deep);
}
.svc-state-ok{background:#eafaf3;border-color:#c9ecdd;color:#2f9d75}
.svc-state-danger{background:#fff1f2;border-color:#ffd6da;color:#d95562}
.svc-state-warn{background:#fff6ea;border-color:#ffe4c6;color:#c8823a}
.svc-remote{border-top:1px dashed var(--border)}
.svc-remote-input{
  background:var(--card)!important;border:1px solid var(--border)!important;color:var(--text)!important;
}
.svc-row{border-bottom:1px dashed var(--border-soft)}
.svc-row>label{color:var(--text-dim)}
.svc-row>input{background:var(--bg-soft)}
.svc-tip{color:var(--text-dim)}
.svc-mono{color:var(--text-sub)}

.bal-hero{
  background:linear-gradient(135deg,var(--bg-pink) 0%,#fff 55%,var(--bg-soft) 100%);
  border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);
  color:var(--text);position:relative;overflow:hidden;
}
.bal-hero::after{
  content:'';position:absolute;right:-6px;top:0;bottom:0;width:210px;
  background:var(--img-balance) right center/contain no-repeat;
  -webkit-mask-image:linear-gradient(to left,#000 26%,transparent 92%);
  mask-image:linear-gradient(to left,#000 26%,transparent 92%);
  opacity:.38;pointer-events:none;
}
.bal-hero>*{position:relative;z-index:1}
.bal-label{color:var(--text-dim)}
.bal-amount{color:var(--primary-deep);font-weight:800;font-family:var(--mono);letter-spacing:-1.6px}
.bal-amount i{color:var(--primary)}
.bal-tip{color:var(--text-dim)}
.bh-stat{background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:var(--radius-sm)}
.bh-stat span{color:var(--text-dim)}
.bh-stat b{color:var(--text);font-family:var(--mono)}
.bal-tag-in{background:#eafaf3;color:#2f9d75}
.bal-tag-out{background:#fff1f2;color:#d95562}
.bal-empty p{color:var(--text-sub)}
.bal-empty span{color:var(--text-dim)}

.coupon-summary .cs-item{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.cs-item b{color:var(--text);font-family:var(--mono)}
.cs-main{background:linear-gradient(135deg,var(--bg-pink),#fff);border-color:var(--primary-soft)}
.cs-main b{color:var(--primary-deep)}
.cs-saved b{color:var(--primary-deep)}
.coupon-ticket{border-radius:var(--radius-sm)}
.ct-left{background:linear-gradient(160deg,#fff1f3,#ffe4ea);color:var(--primary-deep)}
.ct-cond{color:var(--primary-deep)}
.ct-name{color:var(--text)}
.ct-num{font-family:var(--mono)}
.ct-state-unused{background:#eafaf3;color:#2f9d75}
.ct-state-used,.ct-state-expired{background:var(--bg-soft);color:var(--text-dim)}
.coupon-ticket.is-disabled .ct-left{background:var(--bg-soft);color:var(--text-dim)}
.coupon-empty p{color:var(--text-sub)}
.coupon-empty span{color:var(--text-dim)}

/* ---------- 6.16 用户市场 ---------- */
.market-hero{
  background:linear-gradient(135deg,var(--bg-pink) 0%,#fff 60%,var(--bg-soft) 100%);
  border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);
  border-radius:var(--radius);
}
.market-hero h1{color:var(--text);font-weight:800}
.market-hero p{color:var(--text-sub)}
.market-nav a{border-radius:var(--radius-pill);border-color:var(--border);background:var(--card);color:var(--text-sub);box-shadow:var(--shadow-sm)}
.market-nav a:hover{border-color:var(--primary-soft);color:var(--primary-deep)}
.market-nav a.on{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:transparent;
  color:#fff;font-weight:600;box-shadow:var(--shadow-glow);
}
.act-card{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.act-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--primary-soft)}
.act-cover,.act-cover-plain{background:linear-gradient(135deg,var(--primary-soft),var(--lavender))}
.act-name{color:var(--text);font-weight:700}
.act-sub{color:var(--text-sub)}
.act-meta{color:var(--text-dim)}
.act-badge{background:rgba(255,255,255,.92);color:var(--primary-deep)}
.act-hero{background:linear-gradient(135deg,var(--primary-soft),var(--lavender));border:1px solid var(--border)}
.wd-preview{background:var(--bg-soft);border-color:var(--border)}

/* ---------- 6.17 认证页 ---------- */
.auth-page{position:relative;padding:56px 24px 64px}
.auth-page::before{
  content:'';position:absolute;top:6px;right:max(2%,calc(50% - 500px));
  width:220px;height:220px;background:var(--img-auth) center/contain no-repeat;
  opacity:.95;pointer-events:none;z-index:0;
  filter:drop-shadow(0 12px 24px rgba(255,138,168,.28));
  animation:floatY 5s ease-in-out infinite;
}
.auth-page::after{
  content:'';position:absolute;left:0;top:0;bottom:0;width:min(25vw,340px);height:100%;
  background:var(--img-auth-side) left bottom/contain no-repeat;
  -webkit-mask-image:linear-gradient(to right,#000 54%,transparent 100%),linear-gradient(to top,transparent 0%,#000 6%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,#000 54%,transparent 100%),linear-gradient(to top,transparent 0%,#000 6%);
  mask-composite:intersect;
  opacity:.46;pointer-events:none;z-index:0;
}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.auth-card{
  position:relative;z-index:1;border-radius:var(--radius);box-shadow:var(--shadow);
  border:1px solid var(--border);background:var(--card);
}
.auth-head h1{font-size:23px;font-weight:800;color:var(--text)}
.auth-head p{color:var(--text-sub)}
.auth-foot{border-top:1px dashed var(--border);color:var(--text-dim)}
.auth-foot a{color:var(--primary-deep);font-weight:600}
.captcha-img{border-color:var(--border);border-radius:var(--radius-sm)}

/* ---------- 6.18 空状态 / 404 ---------- */
.empty-state{
  border:2px dashed var(--border);border-radius:var(--radius);background:var(--card);
  color:var(--text-dim);
}
.empty-state::before{
  content:'';display:block;width:168px;height:168px;margin:0 auto 18px;
  background:var(--img-empty) center/contain no-repeat;opacity:.92;
}
.err-page{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:70vh;text-align:center;padding:40px 20px;
}
.err-page::before{
  content:'';flex:none;width:168px;height:168px;margin-bottom:8px;
  background:var(--img-empty) center/contain no-repeat;opacity:.92;
}
.err-code{
  font-family:var(--mono);font-size:84px;font-weight:800;letter-spacing:-4px;
  background:linear-gradient(135deg,var(--primary-soft),var(--primary),var(--lavender));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--primary-deep);
}
.err-page h1{font-size:21px;font-weight:700;margin:14px 0 10px;color:var(--text)}
.err-page p{color:var(--text-sub);font-size:13.5px;margin-bottom:26px}

/* ---------- 6.19 页脚 ---------- */
.site-footer{
  margin-top:auto;border-top:1px dashed var(--border);
  background:linear-gradient(180deg,rgba(255,244,247,.55),rgba(255,238,243,.85));
  color:var(--text-sub);
}
html[data-theme="bluecat"] .site-footer{
  background:linear-gradient(180deg,rgba(238,246,255,.6),rgba(230,242,255,.85));
}
.footer-grid{gap:40px;padding-top:52px;padding-bottom:40px}
.site-footer h4{color:var(--primary-deep);font-size:12px;font-weight:700}
.site-footer a,.site-footer .qa{color:var(--text-sub);font-size:13px}
.site-footer a:hover{color:var(--primary-deep);transform:translateX(3px)}
.site-footer .logo{color:var(--text)}
.footer-desc{color:var(--text-dim)}
.footer-grid .qa strong{color:var(--text-sub)}
.footer-bottom{border-top:1px dashed var(--border);color:var(--text-dim)}

/* 页脚水印（仅蓝白猫娘主题，与原版一致） */
html[data-theme="bluecat"] .site-footer{position:relative}
html[data-theme="bluecat"] .site-footer::after{
  content:'';position:absolute;right:0;bottom:0;width:168px;height:156px;
  background:var(--img-foot) right bottom/contain no-repeat;opacity:.16;pointer-events:none;
}

/* ---------- 6.20 陪伴提示卡插画位（蓝白猫娘主题） ---------- */
.cn-notice{--cn-img:var(--img-notice)}
.cn-pay{--cn-img:var(--img-pay)}
.cn-order{--cn-img:var(--img-order)}
.cn-detail{--cn-img:var(--img-detail)}
.cn-user{--cn-img:var(--img-user)}
.cn-coupon{--cn-img:var(--img-coupon)}
html[data-theme="bluecat"] .cat-note .cn-ill{
  flex:none;width:78px;height:78px;border-radius:16px;
  background:var(--cn-img,none) center/contain no-repeat;
}
html[data-theme="bluecat"] .pay-card>.pay-mascot{
  position:absolute;right:16px;top:16px;width:88px;height:88px;
  background:var(--img-pay) center/contain no-repeat;pointer-events:none;z-index:1;
}
html[data-theme="bluecat"] .pd-header>.dc-mascot{
  position:absolute;right:18px;top:18px;width:92px;height:92px;
  background:var(--img-detail) center/contain no-repeat;pointer-events:none;z-index:0;opacity:.9;
}

/* ---------- 6.21 移动端底栏与抽屉 ---------- */
.mobile-tabbar{
  background:rgba(255,250,251,.97);border-top:1px solid var(--border);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
html[data-theme="bluecat"] .mobile-tabbar{background:rgba(248,251,255,.97);border-top-color:var(--border)}
.mobile-tabbar a{color:var(--text-dim)}
.mobile-tabbar a.on{color:var(--primary-deep)}
.mobile-tabbar a.on svg{filter:drop-shadow(0 2px 6px var(--primary-glow))}
.pd-mobile-bar{background:rgba(255,250,251,.98);border-top:1px solid var(--border);box-shadow:0 -6px 20px -12px rgba(255,138,168,.4)}
.pd-mobile-bar .pb-price{color:var(--primary-deep);font-family:var(--mono)}
.pd-mobile-bar .pb-label{color:var(--text-dim)}

/* ---------- 6.22 响应式回归 ---------- */
@media (max-width:1080px){
  .hero h1{font-size:33px}
}
@media (max-width:900px){
  .hero::before{width:100%;background:linear-gradient(to bottom,transparent 40%,var(--bg) 96%)}
  .hero::after{
    left:auto;right:-6%;top:auto;bottom:-2%;width:min(52vw,320px);height:100%;
    opacity:.5;
  }
  .feature-strip{grid-template-columns:repeat(2,1fr)}
  .auth-page::after{display:none}
}
@media (max-width:768px){
  .wrap{padding:0 18px}
  .header-inner{height:56px;gap:12px}
  .main-nav{background:rgba(255,250,251,.99)}
  html[data-theme="bluecat"] .main-nav{background:rgba(248,251,255,.99)}
  .main-nav a{height:46px;padding:0 18px;font-size:15px}
  .main-nav a.active{background:var(--bg-pink);border-bottom:0;color:var(--primary-deep)}
  .hero{padding:6px 0 0}
  .hero-inner{padding:26px 18px 30px;gap:26px}
  .hero h1{font-size:27px;letter-spacing:-.5px}
  .hero-sub{font-size:14px;line-height:1.9;margin-bottom:22px}
  .hero::after{width:min(58vw,300px);opacity:.42;bottom:-4%}
  .hero-stats{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px;padding-top:20px}
  .hero-stats>div{padding:0;border-left:0!important;padding-left:0!important}
  .hero-stats strong{font-size:20px}
  .hero-card{max-width:none}
  .section-head h2{font-size:20px}
  .section-head h2::after{width:32px;height:3px;margin-top:8px}
  .page-head h1,.account-head h1{font-size:19px}
  .p-card,.product-card{padding:18px 16px}
  .pc-title,.product-head h3{font-size:15px}
  .pc-price .num,.product-price .num{font-size:26px}
  .pd-title{font-size:20px}
  .pd-price .num{font-size:30px}
  .flow-item{padding:18px 16px}
  .feature-strip{grid-template-columns:1fr;gap:10px}
  .feature-strip .feat{padding:18px 16px}
  .bal-amount{font-size:34px}
  .bal-hero::after{width:130px;opacity:.3}
  .svc-hero h1{font-size:19px}
  .site-footer{padding-bottom:64px}
  .footer-grid{gap:24px;padding:32px 18px 26px}
  .err-code{font-size:58px}
  .err-page::before{width:128px;height:128px}
  .empty-state::before{width:128px;height:128px;margin-bottom:14px}
  .auth-page{padding:26px 16px 44px}
  .auth-page::before{width:132px;height:132px;right:6px;opacity:.85}
  .theme-toggle .tt-label{display:none}
  .theme-toggle{padding:8px 10px}
}
@media (max-width:420px){
  .hero h1{font-size:24px}
  .hero-stats strong{font-size:18px}
  .bal-amount{font-size:30px}
}
@media (prefers-reduced-motion:reduce){
  .auth-page::before{animation:none}
  .hc-led{animation:none}
}

/* ---------- 6.23 首屏陪伴插画与流程区背衬 ---------- */
/* 首页 Hero 手机端陪伴插画：仅蓝白猫娘主题、仅移动端，桌面端与樱花主题不占版面 */
@media (max-width:768px){
  html[data-theme="bluecat"] .hero-mascot{
    display:block;position:absolute;right:-10px;bottom:0;
    width:132px;height:132px;z-index:0;opacity:.55;pointer-events:none;
    background:var(--img-hero-m) center/contain no-repeat;
  }
  html[data-theme="bluecat"] .hero-inner{position:relative}
}
/* 开通流程区：浅粉渐变底 + 右侧陪伴插画（向左右渐隐） */
.steps-section{
  position:relative;margin-top:52px;padding:46px 0;
  background:linear-gradient(180deg,rgba(255,244,247,.7),rgba(255,250,251,.5));
  border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);
  overflow:hidden;
}
html[data-theme="bluecat"] .steps-section{
  background:linear-gradient(180deg,rgba(238,246,255,.7),rgba(248,251,255,.5));
}
.steps-section::before{
  content:'';position:absolute;right:-8%;top:-10%;bottom:-10%;width:min(38vw,500px);
  background:var(--img-steps) right center/contain no-repeat;
  -webkit-mask-image:linear-gradient(to left,#000 30%,transparent 100%);
  mask-image:linear-gradient(to left,#000 30%,transparent 100%);
  opacity:.14;pointer-events:none;
}
.steps-section .wrap{position:relative;z-index:1}
@media (max-width:768px){
  .steps-section{padding:32px 0;margin-top:36px}
  .steps-section::before{width:min(58vw,300px);opacity:.1}
}

/* ---------- 6.24 Hero 尺寸校准（与原版一致：足够高度让插画完整呈现） ---------- */
@media (min-width:1025px){
  .hero{min-height:520px;display:flex;align-items:center;padding:0}
  .hero>.wrap{width:100%}
  .hero-inner{padding:46px 24px}
}
/* 交付卡降低不透明度，让右侧插画透出（原版 0.82） */
.hero-card{background:rgba(255,255,255,.82)}
/* 分类入口描述允许两行，避免长描述被截成 "Windows / Lin…" */
.qc-desc{
  white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;line-height:1.45;
}
@media (max-width:768px){
  .hero-inner{padding-top:30px}
}

/* 区块之间留出与原版一致的呼吸感 */
.section{padding-top:46px}
.section-tight{padding-top:30px}
@media (max-width:768px){ .section{padding-top:34px} }

/* 修正：皮肤层重设了 hero 两栏，移动/平板必须回到单列，避免右侧溢出 */
@media (max-width:900px){
  .hero{display:block}
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:26px}
}

/* 余额总览：统计卡提高不透明度，避免与右侧插画相互干扰 */
.bh-stat{background:rgba(255,255,255,.9)}
.bal-hero::after{width:180px;opacity:.3}
@media (max-width:768px){ .bal-hero::after{width:120px;opacity:.24} }

/* ---------- 6.25 上线前细节校准 ---------- */
/* 浅粉底上的 ghost 按钮补白底，避免看起来像标签 */
.page-head-actions .btn-ghost,.account-head .page-head-actions .btn-ghost{
  background:var(--card);border-color:var(--border);box-shadow:var(--shadow-xs);
}
.page-head-actions .btn-ghost:hover,.account-head .page-head-actions .btn-ghost:hover{
  background:var(--bg-soft);border-color:var(--primary-soft);
}
/* 表单输入框在近白底上补一点边界感，不改变配色 */
.form-item>input:not([type=radio]):not([type=checkbox]):not([type=hidden]),
.form-item>select,.form-item>textarea{
  box-shadow:0 1px 2px rgba(255,138,168,.05) inset;
}

/* ---------- 6.26 顶栏用户直达入口（2.0.2） ---------- */
/* 余额胶囊内的「充值」小标：让充值入口一眼可见 */
.bc-recharge{
  font-style:normal;font-size:10.5px;line-height:1;padding:3px 6px;border-radius:999px;
  background:var(--primary);color:#fff;font-weight:600;letter-spacing:.02em;
}
.balance-chip:hover .bc-recharge{background:var(--primary-deep)}
/* 会员中心下拉：悬停/聚焦展开，把账户入口收进菜单而不挤占顶栏 */
.member-menu{position:relative;padding-bottom:6px;margin-bottom:-6px}
.member-menu .mm-caret{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:transform .18s}
.member-menu:hover .mm-caret,.member-menu:focus-within .mm-caret{transform:rotate(180deg)}
.mm-panel{
  display:none;position:absolute;right:0;top:100%;min-width:176px;z-index:60;
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--shadow);padding:6px;
}
.member-menu:hover .mm-panel,.member-menu:focus-within .mm-panel{display:block}
.mm-panel a{
  display:block;padding:8px 12px;border-radius:8px;font-size:13.5px;
  color:var(--text-sub);white-space:nowrap;line-height:1.5;
}
.mm-panel a:hover{background:var(--bg-pink);color:var(--primary-deep)}
.mm-sep{height:1px;background:var(--border);margin:6px 4px}
/* 移动抽屉里的「我的账户」分组标题 */
.main-nav .nav-extra-title{display:none}
@media (max-width:768px){
  .main-nav .nav-extra-title{
    display:block;font-size:11.5px;color:var(--ink-3);font-weight:600;letter-spacing:.4px;
    padding:14px 18px 4px;margin-top:6px;border-top:1px dashed var(--line);
  }
}
.member-menu{flex:none}

/* ---------- 6.27 登录页：密码 / 验证码双方式（2.0.5） ---------- */
.login-tabs{
  display:flex;gap:6px;background:var(--bg-soft);border:1px solid var(--border);
  border-radius:999px;padding:4px;margin-bottom:20px;
}
.login-tab{
  flex:1;height:34px;border:0;background:transparent;border-radius:999px;
  font-size:13.5px;color:var(--text-sub);cursor:pointer;font-family:inherit;font-weight:500;
  transition:background .15s,color .15s;
}
.login-tab:hover{color:var(--primary-deep)}
.login-tab.on{background:var(--card);color:var(--primary-deep);font-weight:600;box-shadow:var(--shadow-sm)}
.code-row{display:flex;gap:8px;align-items:center}
.code-row input{flex:1;min-width:0}
.code-row .btn{flex:none;height:40px;white-space:nowrap}
.code-row .captcha-img{flex:none;border:1px solid var(--border);border-radius:8px}
.code-tip{
  font-size:12px;color:var(--text-dim);margin-top:12px;line-height:1.7;text-align:center;
}
@media (max-width:768px){
  .code-row .btn{padding:8px 12px;font-size:12.5px}
}

/* ---------- 6.28 弹性商品「选择配置」移动端折叠（2.0.6 / 2.0.7 优化辨识度） ---------- */
/* 桌面端不渲染折叠头，行为与原来完全一致 */
.pkg-fold-head{
  display:none;
  /* 去掉移动端浏览器默认的蓝色点击高亮与焦点框 */
  -webkit-tap-highlight-color:rgba(0,0,0,0);
  tap-highlight-color:rgba(0,0,0,0);
  outline:none;
}
.pkg-fold-head:focus,
.pkg-fold-head:focus-visible{outline:none}
.pkg-fold .pfh-arrow{
  width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;color:var(--text-dim);
  transition:transform .18s;flex:none;
}
.pkg-fold.is-open .pfh-arrow{transform:rotate(180deg)}

@media (max-width:768px){
  /* 折叠头接管标题职责：白底 + 粉边框 + 左侧渐变竖条，与购买面板卡片协调但更醒目 */
  .pkg-fold > .pkg-select-title{display:none}
  .pkg-fold-head{
    display:flex;align-items:center;gap:9px;width:100%;margin-bottom:10px;
    padding:12px 14px;
    background:var(--card);
    border:1px solid var(--primary-soft);
    border-radius:var(--radius-sm);
    box-shadow:var(--shadow-sm);
    cursor:pointer;font-family:inherit;text-align:left;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    tap-highlight-color:rgba(0,0,0,0);
    outline:none;
    transition:border-color .15s,box-shadow .15s,background .15s;
  }
  /* 左侧粉色渐变竖条：让「这里可以点」一眼可见 */
  .pkg-fold-head::before{
    content:'';flex:none;width:4px;height:16px;border-radius:2px;
    background:linear-gradient(180deg,var(--primary),var(--primary-soft));
  }
  .pkg-fold-head:active{box-shadow:var(--shadow);border-color:var(--primary)}
  .pkg-fold-head:focus{outline:none}
  .pkg-fold-head:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}
  .pkg-fold.is-open .pkg-fold-head{
    border-color:var(--primary);background:var(--bg-pink);
    margin-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;box-shadow:none;
  }
  .pkg-fold.is-open .pkg-options{
    border:1px solid var(--primary);border-top:0;
    border-radius:0 0 var(--radius-sm) var(--radius-sm);
  }
  .pfh-title{font-weight:600;color:var(--text);font-size:14px;flex:none;letter-spacing:.02em}
  .pfh-current{
    flex:1;min-width:0;text-align:right;color:var(--primary-deep);font-weight:600;font-size:13.5px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  /* 收起状态：隐藏选项列表 */
  .pkg-fold:not(.is-open) .pkg-options{display:none}
}

/* ---------- 6.29 工单系统（2.0.8，前台后台共用） ---------- */
.ticket-thread{display:flex;flex-direction:column;gap:14px}
.tk-msg{
  max-width:86%;padding:12px 14px;border-radius:14px;
  border:1px solid var(--border);background:var(--card);line-height:1.7;
}
.tk-msg-head{
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
  font-size:12px;color:var(--text-dim);
}
.tk-msg-head b{color:var(--text-sub);font-size:12.5px}
.tk-msg-body{font-size:13.5px;color:var(--text);overflow-wrap:anywhere}
.tk-msg-user{align-self:flex-end;background:var(--bg-pink);border-color:var(--primary-soft);border-bottom-right-radius:4px}
.tk-msg-user .tk-msg-head b{color:var(--primary-deep)}
.tk-msg-user .tk-msg-head{justify-content:flex-end}
.tk-msg-staff{align-self:flex-start;border-bottom-left-radius:4px}
.tk-msg-note{
  background:#fffaf0;border-color:#f5deb0;
}
@media (min-width:769px){ .tk-msg{max-width:72%} }

/* 提交页：部门卡片单选 */
.dept-select{display:grid;gap:8px}
@media (min-width:600px){ .dept-select{grid-template-columns:1fr 1fr} }
.dept-option{position:relative;cursor:pointer}
.dept-option input{position:absolute;opacity:0;pointer-events:none}
.dept-option .do-box{
  display:block;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--card);transition:border-color .15s,background .15s,box-shadow .15s;
}
.dept-option input:checked + .do-box{
  border-color:var(--primary);background:var(--bg-pink);box-shadow:var(--shadow-sm);
}
.dept-option .do-box b{display:block;font-size:13.5px;color:var(--text)}
.dept-option .do-box em{
  display:block;font-style:normal;font-size:12px;color:var(--text-dim);margin-top:3px;line-height:1.5;
}

/* 后台工单行高亮（待客服回复） */
.row-card-highlight{border-color:var(--primary-soft);background:linear-gradient(90deg,var(--bg-pink),var(--card) 40%)}

/* ---------- 6.30 日均价格展示（2.0.10） ---------- */
.pc-daily{
  display:inline-block;margin-left:8px;font-size:12px;color:var(--text-dim);
  white-space:nowrap;
}
.bp-daily{
  margin-top:2px;font-size:12px;color:var(--text-dim);text-align:right;
  padding-right:4px;
}
