
/* ===== P0 · 品牌基础 token（2026-11-10）===== */
:root{
  /* 字阶：9 级，比例 1.25（11 仅用于等宽微标） */
  --t-display:64px; --t-h1:40px; --t-h2:28px; --t-h3:21px;
  --t-lead:17px; --t-body:15px; --t-small:13px; --t-meta:12px; --t-micro:11px;

  /* 间距：4 的倍数 */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px;

  /* 圆角：只留两档 + 胶囊 */
  --r:12px; --r-pill:999px;
  --card:#FFFDF6; --gold-lit:#E8B93B;

  /* 动效：唯一缓动与时长 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-in:200ms; --dur-out:160ms;

  /* 展示字体：标题用宋，正文用黑 */
  --serif:Georgia,"Songti SC","Noto Serif CJK SC","Source Han Serif SC","Noto Serif SC",serif;
}
h1,h2,.display{font-family:var(--serif);font-weight:400;letter-spacing:.01em}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}
/* 手机浏览器/微信：去掉点击时的蓝色高亮（那层青色就是这样来的） */
html{-webkit-tap-highlight-color:transparent}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
:root{
  --ink:#16150F; --ink2:#3C3A31; --ink3:#6F6B5C; --paper:#fff; --bg:#F6F5F0;
  --rule:#E4E1D6; --rule2:#D6D2C4; --gold:#B79A5B;
  --gold-ink:#6E5828; --gold2:#E7DCC0; --plate:#EFEDE4;
  --ok:#3f7a4f; --bad:#b23b3b; --warn:#a8792a;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei",Segoe UI,Roboto,sans-serif;
  --mono:"SFMono-Regular",Consolas,"IBM Plex Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit}
.wrap{width:min(1120px,94vw);margin-inline:auto}
.mono{font-family:var(--mono)}
.lbl{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6D6450}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}
.muted{color:#6D6450}
.small{font-size:13px}
small{font-size:13px}

/* header */
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.top__in{display:flex;align-items:center;gap:16px;height:58px}
.brand{font-family:var(--mono);font-weight:600;letter-spacing:.16em;font-size:15px}
.brand small{color:#6D6450;font-weight:400;letter-spacing:.04em}
.spacer{margin-left:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:15px;cursor:pointer;white-space:nowrap;
  color:#F7F1E3;border:1px solid #171310;border-radius:var(--r);
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.022) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#2C261D 0%,#201B14 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 -1px 0 rgba(0,0,0,.45), 0 1px 2px rgba(30,22,10,.22);
  transition:transform .16s,box-shadow .16s,background .16s,border-color .16s}
.btn:hover{background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#37301F 0%,#282116 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), inset 0 -1px 0 rgba(0,0,0,.45), 0 4px 12px -6px rgba(40,28,10,.5);
  transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:inset 0 2px 4px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.05)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn--g{color:var(--ink);border:1px solid var(--rule2);
  background:
    repeating-linear-gradient(0deg, rgba(120,100,64,.03) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#FFFDF6,#F7F1E3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 1px 2px rgba(90,75,45,.08)}
.btn--g:hover{border-color:var(--ink);color:var(--ink);
  background:
    repeating-linear-gradient(0deg, rgba(120,100,64,.05) 0 1px, transparent 1px 3px),
    linear-gradient(180deg,#FFFDF6,#EFE7D6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 3px 10px -6px rgba(90,75,45,.35);
  transform:translateY(-1px)}
.btn--gold{background:#B79A5B;border-color:#B79A5B;color:#1a1710}
.btn--gold:hover{background:#a8894c}
.btn--sm{padding:8px 12px;font-size:13px}
.btn--danger{background:none;color:var(--bad);border-color:var(--rule2)}
.btn--danger:hover{border-color:var(--bad);background:#fbeeee}

/* forms */
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}
.field>span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6D6450}
.inp,select.inp,textarea.inp{width:100%;padding:8px 12px;border:1px solid var(--rule2);background:#fff;font-size:15px;font-family:inherit;color:var(--ink)}
.inp:focus{outline:none;border-color:var(--ink)}
textarea.inp{resize:vertical;min-height:70px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink2)}

/* product grid (storefront) */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px 16px}
.pc{border:0;background:none;padding:0;cursor:pointer;text-align:left}
.pc__im{position:relative;aspect-ratio:3/4;background:#EFEEE9;overflow:hidden}
.pc__im img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pc:hover .pc__im img{transform:scale(1.05)}
.pc__badge{position:absolute;left:0;top:0;background:var(--ink);color:#fff;font-size:11px;letter-spacing:.14em;padding:4px 8px;font-family:var(--mono)}
.pc__mc{position:absolute;right:.5rem;bottom:.5rem;background:rgba(0,0,0,.6);color:#fff;font-family:var(--mono);font-size:11px;padding:4px 8px}
.pc__n{font-size:13px;font-weight:500;margin-top:8px}
.pc__p{font-family:var(--mono);font-size:13px;margin-top:4px}

/* modal */
.mask{position:fixed;inset:0;background:rgba(20,18,12,.5);z-index:60;display:none;align-items:center;justify-content:center;padding:16px}
.mask[data-open="1"]{display:flex}
.sheet{background:#fff;width:min(760px,100%);max-height:90vh;overflow:auto;border:1px solid var(--rule)}
.sheet__h{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:#fff}
.sheet__x{margin-left:auto;background:none;border:0;font-size:var(--t-h3);cursor:pointer;color:#6D6450;line-height:1}
.sheet__b{padding:20px}
.buy{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px}
.buy__gal img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#EFEEE9;border:1px solid var(--rule)}
.thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.thumbs button{width:52px;height:52px;padding:0;border:1px solid var(--rule);background:#EFEEE9;cursor:pointer;overflow:hidden}
.thumbs button[aria-current="true"]{border-color:var(--ink)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.opt{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.opt button{padding:4px 12px;border:1px solid var(--rule2);background:#fff;cursor:pointer;font-size:13px}
.opt button[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}
@media(max-width:640px){.buy{grid-template-columns:1fr}.row{grid-template-columns:1fr}}

/* admin */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.tab{padding:12px 16px;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-size:13px;color:var(--ink2)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.panel{padding:20px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.tile{border:1px solid var(--rule);padding:16px 20px;background:#fff}
.tile b{display:block;font-family:var(--mono);font-size:1.7rem;color:#B79A5B}
.tile span{font-size:13px;color:#6D6450}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{border:1px solid var(--rule);padding:8px 8px;text-align:left;vertical-align:middle}
th{background:#EFEEE9;font-weight:600}
td.n,th.n{text-align:right;font-family:var(--mono)}
.pill{display:inline-block;font-family:var(--mono);font-size:11px;padding:4px 8px;border:1px solid var(--rule2);color:var(--ink2)}
.pill[data-s="paid"],.pill[data-s="shipped"],.pill[data-s="done"],.pill[data-s="active"]{color:#fff;background:var(--ink);border-color:var(--ink)}
.pill[data-s="pending"],.pill[data-s="unpaid"]{color:var(--warn);border-color:var(--warn)}
.pill[data-s="rejected"],.pill[data-s="cancel"]{color:var(--bad);border-color:var(--bad)}
/* 订单操作列：竖向整齐堆叠，控件满宽、左缘对齐 */
.opc{min-width:130px}
.opc>*+*{margin-top:8px}
.opc .btn,.opc .inp,.opc select,.opc input{width:100%;box-sizing:border-box}
.opc .btn{justify-content:center}
.opc .pill{display:inline-block}
@media(max-width:640px){
  table{font-size:13px}
  th,td{padding:8px 8px;vertical-align:top}
  .opc{min-width:112px}
  .btn--sm{padding:.36rem 8px;font-size:13px}
  .bar{gap:8px}
  .bar h3{font-size:15px}
}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.pcard{border:1px solid var(--rule);background:#fff}
.pcard__im{aspect-ratio:3/4;background:#EFEEE9;overflow:hidden;position:relative}
.pcard__im img{width:100%;height:100%;object-fit:cover}
.pcard__b{padding:12px}
.empty{padding:48px 16px;text-align:center;color:#6D6450}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 16px;font-size:13px;z-index:99;opacity:0;transition:.25s;pointer-events:none}
.toast[data-on="1"]{opacity:1}
.hr{height:1px;background:var(--rule);margin:16px 0}
.gate{max-width:380px;margin:12vh auto;padding:0 16px}
.kv{font-size:13px;color:#6D6450}

/* ===== 管理后台精致化：圆角 + 留白 + 弱化边框（仅 .admin，不影响店铺/详情页）===== */
.admin{background:#F6F5F0}
.admin .wrap{width:min(1180px,94vw)}
.admin .top{background:rgba(246,245,240,.9)}
.admin .panel{padding:24px 0 32px}
/* 按钮：圆角 + 柔和阴影 */
.admin .btn{border-radius:12px;padding:0 16px;min-height:40px;line-height:1;font-weight:500;letter-spacing:0;box-shadow:0 1px 2px rgba(20,18,12,.07);transition:.16s}
.admin .btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,18,12,.14)}
.admin .btn:active{transform:none;box-shadow:0 1px 2px rgba(20,18,12,.1)}
.admin .btn--sm{border-radius:var(--r);min-height:34px;padding:0 16px;font-size:13px}
.admin .btn--g,.admin .btn--danger{background:#fff}
.admin .btn--g:hover{background:#fff;border-color:var(--ink)}
/* 输入 / 选择：圆角 + 焦点光环 */
.admin .inp,.admin select.inp,.admin textarea.inp{border-radius:var(--r);padding:8px 12px;border-color:var(--rule2);background:#fff;line-height:1.25;transition:border-color .18s,box-shadow .18s}
.admin input.inp,.admin select.inp{min-height:40px}
.admin .inp:focus,.admin select.inp:focus,.admin textarea.inp:focus{outline:none;border-color:#B79A5B;box-shadow:0 0 0 3px rgba(183,154,91,.16)}
/* 状态标签：胶囊形 + 浅底 */
.admin .pill{border-radius:0;padding:4px 8px;font-size:12px;border-color:transparent}
.admin .pill[data-s="pending"],.admin .pill[data-s="unpaid"]{background:rgba(168,121,42,.12);color:var(--warn)}
.admin .pill[data-s="rejected"],.admin .pill[data-s="cancel"]{background:rgba(178,59,59,.12);color:var(--bad)}
/* 卡片 / 弹层 / 登录门：圆角 */
.admin .tile{border-radius:var(--r);border-color:var(--rule);box-shadow:0 1px 3px rgba(20,18,12,.04)}
.admin .pcard{border-radius:var(--r);overflow:hidden;border-color:var(--rule)}
.admin .sheet{border-radius:var(--r);border:0;box-shadow:0 24px 70px rgba(20,18,12,.28)}
.admin .gate{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:1.8rem 24px;box-shadow:0 12px 44px rgba(20,18,12,.09);margin-top:8vh}
.admin .toast{border-radius:12px}
/* 标签页 */
.admin .tab{border-radius:var(--r) 10px 0 0;padding:12px 16px}
.admin .tab[aria-selected="true"]{background:#fff}
/* 表格：细横线 + 圆角卡片 + 悬停高亮，去掉满格边框 */
.admin table{border-collapse:separate;border-spacing:0;border:1px solid var(--rule);border-radius:var(--r);background:#fff;font-size:13px}
.admin th,.admin td{border:0;border-bottom:1px solid var(--rule);padding:12px 12px;vertical-align:middle}
.admin thead th{background:#F7F6F1;color:#6D6450;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;padding:8px 12px}
.admin thead th:first-child{border-top-left-radius:13px}
.admin thead th:last-child{border-top-right-radius:13px}
.admin tbody tr:last-child td{border-bottom:0}
.admin tbody tr:last-child td:first-child{border-bottom-left-radius:13px}
.admin tbody tr:last-child td:last-child{border-bottom-right-radius:13px}
.admin tbody tr:hover td{background:#FCFBF7}
.admin td.n,.admin th.n{text-align:right}
.admin .empty{border:1px solid var(--rule);border-radius:var(--r);background:#fff}
@media(max-width:640px){
  .admin th,.admin td{padding:.56rem 8px;font-size:13px}
  .admin table{font-size:13px}
  .admin .opc{min-width:104px}
  .admin .btn--sm{padding:0 12px;font-size:13px;min-height:32px}
  .admin .panel{padding:16px 0 24px}
  /* 标签页：单行横向滑动（iOS 分段控件式） */
  .admin .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .admin .tabs::-webkit-scrollbar{display:none}
  .admin .tab{flex:none;white-space:nowrap;padding:12px 16px}
  .admin .bar{gap:8px}
  .admin .bar h3{font-size:15px;line-height:1.4}
  /* 订单/发货台：手机上表格转卡片，逐格「标签在上、值在下」 */
  .admin table.cardify{display:block;border:0;background:none;border-radius:0;box-shadow:none}
  .admin table.cardify thead{display:none}
  .admin table.cardify tbody{display:block}
  .admin table.cardify tr{display:block;border:1px solid var(--rule);border-radius:var(--r);background:#fff;padding:4px 16px 8px;margin-bottom:12px;box-shadow:0 1px 3px rgba(20,18,12,.05)}
  .admin table.cardify td{display:block;border:0;border-bottom:1px solid var(--rule);padding:8px 0;font-size:13px;text-align:left}
  .admin table.cardify tr td:last-child{border-bottom:0}
  .admin table.cardify td::before{content:attr(data-label);display:block;font-size:11px;color:#6D6450;font-weight:600;margin-bottom:4px;letter-spacing:.02em}
  .admin table.cardify td.n{font-family:var(--mono);font-size:15px}
  .admin table.cardify td:first-child{font-weight:600}
  .admin table.cardify td .kv{font-weight:400;margin-top:4px}
  .admin table.cardify .opc{min-width:0}
  .admin table.cardify .opc>*+*{margin-top:8px}
}

/* ---------- 页脚 / 销量 ---------- */
.pc__sold{font-family:var(--mono);font-size:11px;color:#6D6450;margin-left:8px}
.ft{border-top:1px solid var(--rule);margin-top:48px;padding:40px 0 48px;background:#F6F5F0}
.ft__row{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:baseline}
.ft__tag{font-size:13px;color:#6D6450}
.ft__links{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:12px;font-size:13px;color:#6D6450}
.ft__links a{padding:8px 0;display:inline-block}
.ft__links a:hover{color:var(--ink)}
.ft__c{margin:16px 0 0;font-size:11px;color:#6D6450;line-height:1.7}
.tile--go{cursor:pointer;transition:border-color .18s,transform .18s}
.tile--go:hover{border-color:var(--ink);transform:translateY(-1px)}

/* ===== v3 统一：后台与前台同一套语言（直角 / 墨色页头 / 衬线标题）===== */
.admin{background:#F6F5F0}
.admin .top{background:var(--ink);border-bottom:0}
.admin .top__in{height:64px}
.admin .top .brand,.admin .top .muted,.admin .top .small{color:#F6F5F0}
.admin .top .brand{letter-spacing:.18em;font-size:12px;font-weight:600}
.admin .btn,.admin .btn--sm,.admin .inp,.admin select.inp,.admin textarea.inp,
.admin .tile,.admin .pcard,.admin .sheet,.admin .gate,.admin .toast,.admin .empty,
.admin table,.admin table.cardify tr,.admin .tab,.admin .pill{border-radius:0}
.admin .btn{box-shadow:none;min-height:38px;letter-spacing:.02em}
.admin .btn:hover{transform:none;box-shadow:none;background:var(--ink);color:#F6F5F0}
.admin .btn--g{background:#fff;border-color:var(--rule2)}
.admin .tile{box-shadow:none;border-color:var(--rule)}
.admin .tile b{font-family:Georgia,"Songti SC","Noto Serif SC",serif;color:var(--ink);font-size:var(--t-h3);letter-spacing:.02em}
.admin .tabs{border-bottom:1px solid var(--ink);gap:4px}
.admin .tab{border:1px solid transparent;border-bottom:0;font-size:13px;letter-spacing:.02em}
.admin .tab[aria-selected="true"],.admin .tab.on{border-color:var(--ink);background:#fff}
.admin table{border-color:var(--rule)}
.admin h3,.admin .panel h2{font-family:Georgia,"Songti SC","Noto Serif SC",serif;font-weight:700;letter-spacing:.02em}
.admin .gate{border-color:var(--ink);box-shadow:none}
.admin .sheet{box-shadow:0 24px 70px rgba(20,18,12,.22);border:1px solid var(--ink)}

/* ===== v4：读得清、摸得软、动得轻 ===== */
:root{--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif}
html,body,button,input,select,textarea,table{font-family:var(--sans)}
h1,h2,h3,h4,.panel h2{font-family:var(--sans);font-weight:600;letter-spacing:0}
.cover__title,.hero h1{font-family:Georgia,"Songti SC","Noto Serif SC",serif}
/* 圆角回来：按钮 8，卡片 12，大面板 16 */
.btn,.btn--sm,.btn--g,.inp,select.inp,textarea.inp,.chip,.tab,.pill,.toast,.fab,.favbtn,.pc__heart,.cm-qr,#dHeart,.gal__thumbs button,.admin .btn,.admin .btn--sm,.admin .inp,.admin select.inp,.admin textarea.inp,.admin .tab{border-radius:var(--r)}
.tile,.pcard,.sheet,.gate,.pc,.cm-box{--r:12px}
.admin .tile,.admin .pcard,.admin .sheet,.admin .gate,.admin table,.admin table.cardify tr,.tile,.pcard,.gate,.sheet{border-radius:12px}
.admin .sheet{border-radius:var(--r)}
.pc__im img,.gal__main img,.admin table img{border-radius:0}
/* 后台表格：放大字号、拉开行距、去掉"糊成一团" */
.admin table{font-size:var(--t-small)}
.admin th,.admin td{padding:16px 12px;line-height:1.55}
.admin thead th{font-size:11px;letter-spacing:.06em}
.admin tbody tr td:first-child+td{font-weight:600}
.admin .muted,.admin .small,.admin small{font-size:13px;color:#5F5B4C}
.admin h3{font-size:15px;margin:0 0 12px}
.admin .btn,.admin .btn--sm{min-height:34px;padding:0 16px;font-size:13px}
.admin .inp{height:38px;font-size:var(--t-small)}
/* 动态：去掉推镜与位移，只留轻淡入 */
.cover__img,.cover__pic{animation:none !important}
.pc.reveal,.reveal{transition:opacity .24s ease, transform .24s ease;transform:translateY(6px)}
.pc.reveal.in,.reveal.in{opacity:1;transform:none}
.btn:hover,.chip:hover,.pc:hover{transform:none}


.admin thead th{color:#5F5B4C;font-size:12px;letter-spacing:.04em;text-transform:none;padding:12px}
.admin td{letter-spacing:.01em}
.admin td b,.admin td:first-child{font-weight:600}

/* ===== 跨页过渡：不再白屏一闪 ===== */
html{background:#F6F5F0}
@view-transition{navigation:auto}
/* 桌面 / 平板：交叉淡入淡出（保持原样） */
::view-transition-old(root){animation:vtFadeOut .18s ease both}
::view-transition-new(root){animation:vtFadeIn .22s ease both}
@keyframes vtFadeOut{to{opacity:0;transform:scale(.995)}}
@keyframes vtFadeIn{from{opacity:0;transform:scale(1.005)}to{opacity:1;transform:none}}

/* 手机：横向推入（对齐 vivo / 原生 App 的手感） */
@media (max-width:767px){
  ::view-transition-old(root){animation:vtOut .30s cubic-bezier(.22,.7,.2,1) both}
  ::view-transition-new(root){animation:vtIn .30s cubic-bezier(.22,.7,.2,1) both;box-shadow:-12px 0 28px rgba(22,21,15,.16)}
  @keyframes vtOut{to{opacity:.92;transform:translateX(-24%)}}
  @keyframes vtIn{from{transform:translateX(100%)}to{transform:none}}
}
html,body{background:#F6F5F0}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

.pc:active,.card:active,a.card:active{opacity:.88}

/* ===== v6：状态用颜色说话，交互有落点 ===== */
.pill{display:inline-flex;align-items:center;padding:4px 8px;border:0;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:0;line-height:1.6;color:var(--ink2);background:#F2F1EC}
.pill[data-s="active"]{background:#E6F5EA;color:#116B34}
.pill[data-s="pending"],.pill[data-s="unpaid"]{background:#FDF2DC;color:#82530F}
.pill[data-s="shipped"],.pill[data-s="paid"],.pill[data-s="done"]{background:#E9F0F9;color:#2A5080}
.pill[data-s="cancel"],.pill[data-s="rejected"]{background:#F2F1EC;color:#6E6A5C}
/* 可点击的状态胶囊 */
.pill--btn{font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:filter .14s,box-shadow .14s}
.pill--btn:hover{filter:brightness(.97);box-shadow:0 1px 0 rgba(20,18,12,.06)}
.pill--btn:focus-visible{outline:2px solid #B79A5B;outline-offset:2px}
/* 表格：悬停有指向，焦点有反馈 */
.admin tbody tr{transition:background .14s}
.admin tbody tr:hover td{background:#FBF9F3}
.admin tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 #B79A5B}
.admin .inp:focus,.admin select.inp:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,21,15,.08)}
.admin input[type="checkbox"]{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}
.admin .btn:active{transform:translateY(1px)}
.admin .btn--danger{color:#B23B3B;border-color:#E2CFCF}
.admin .btn--danger:hover{background:#FBEEEE;border-color:#D9B9B9;color:#9B2F2F}
.admin .tile--go:hover{border-color:var(--ink);box-shadow:0 6px 18px rgba(20,18,12,.08)}

.pill{white-space:nowrap}
.admin .pill{border-radius:0}
.admin .pill--btn{min-width:56px;justify-content:center}

/* ===== v7：主张 + 落款（引语式） ===== */
.quote{margin:0 0 20px;padding:0}
.hero .quote__t,.quote .quote__t{margin:0 0 16px;font-size:40px;line-height:1.14;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.quote .quote__t mark{color:#6E5828;background:none;padding:0 4px;font-size:1.6em;font-weight:800;letter-spacing:0}
.quote__by{display:flex;align-items:center;gap:8px;font-size:13px;color:#6D6450;letter-spacing:.02em}
.quote__by .lbl{font-size:11px;letter-spacing:.22em;color:#6D6450;opacity:.85}
.quote__by b{font-weight:600;color:var(--ink);letter-spacing:.10em}
.quote__dot{width:3px;height:3px;border-radius:50%;background:#6D6450;opacity:.5}
.quote--dark .quote__t{color:#fff}
.quote--dark .quote__t mark{color:#E8B93B;background:none}

.quote--dark .quote__by{color:rgba(246,245,240,.72)}
.quote--dark .quote__by .lbl{color:rgba(246,245,240,.5)}
.quote--dark .quote__by b{color:#fff}
.quote--dark .quote__dot{background:rgba(246,245,240,.5)}
@media(max-width:640px){
  .quote .quote__t{font-size:var(--t-h2);line-height:1.2}
  .quote__by{font-size:12px;gap:8px}
}

/* ---------- v7 后台：今天要处理 ---------- */
.todo{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:4px 0 24px}
@media(max-width:820px){.todo{grid-template-columns:1fr}}
.todo__c{text-align:left;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px;cursor:pointer;
  font-family:var(--sans);transition:border-color .2s,transform .2s}
.todo__c b{display:block;font-size:var(--t-h1);line-height:1;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.todo__c span{display:block;margin-top:6px;font-size:13px;color:var(--ink2)}
.todo__c em{display:block;margin-top:10px;font-style:normal;font-size:12px;color:#6D6450}
.todo__c.is-hot{border-color:#D8C58F;background:linear-gradient(180deg,#FFFDF6,#FBF3DF)}
.todo__c.is-hot em{color:#6E5828;font-weight:600}
.todo__c:hover{transform:translateY(-1px);border-color:var(--ink)}

/* 必填校验：输入框标红 */
.inp--err{border-color:#B3261E !important;background:#FFF6F5 !important;box-shadow:0 0 0 3px rgba(179,38,30,.12) !important}

/* 移动端输入框 ≥16px：iOS Safari 聚焦时不会再自动放大页面 */
@media (max-width:640px){ input,select,textarea,.inp,.stage__search input{min-height:24px;font-size:16px !important} }

/* 行内文字按钮（查快递 / 复制） */
.lnk{color:#6E5828;text-decoration:none;border-bottom:1px solid rgba(110,88,40,.35);padding-bottom:1px}
.lnk:hover{color:var(--ink);border-color:var(--ink)}
.lnk--btn{background:none;border:0;border-bottom:1px solid rgba(110,88,40,.35);font:inherit;cursor:pointer;padding:0 0 4px}

/* 没上货的分类：置灰、不可点 */
.chip[disabled]{opacity:.42;cursor:not-allowed}

/* 买家秀 / 同店更多 / 查单入口 */
.tst{margin-top:56px}
.tst__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tst__c{margin:0;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 16px 16px}
.tst__c blockquote{margin:0 0 12px;font-size:15px;line-height:1.75;color:var(--ink2)}
.tst__c figcaption{font-size:12px;color:#6D6450}
.tst__c figcaption b{color:var(--ink);font-weight:600}
@media(max-width:820px){.tst__grid{grid-template-columns:1fr}}
.pdse{margin-top:48px;padding-top:8px;border-top:1px solid var(--rule)}
.pdse__row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pdse__tst{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.mcard{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.mcard__im{display:block;aspect-ratio:3/4;background:#EFEDE4;border-radius:var(--r);overflow:hidden}
.mcard__im img{width:100%;height:100%;object-fit:cover;display:block}
.mcard__ph{display:flex;align-items:center;justify-content:center;height:100%;color:#6D6450;font-size:12px}
.mcard__n{display:block;margin:8px 0 4px;font-size:var(--t-body);font-weight:600;line-height:1.45}
.mcard__p{font-size:13px;color:#6D6450}
@media(max-width:820px){.pdse__row{grid-template-columns:repeat(2,1fr)}.pdse__tst{grid-template-columns:1fr}}
.tracklink{margin:40px 0 0;text-align:center}
.tracklink a{color:#6E5828;text-decoration:none;font-size:var(--t-body);border-bottom:1px solid rgba(110,88,40,.3);padding-bottom:2px}
.tracklink a:hover{color:var(--ink);border-color:var(--ink)}

/* 后台：手机端可用性（表格横向滚 + 粘住第一列 + tab 可滑） */
@media(max-width:820px){
  .admin .top_nav,.admin nav{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .admin table{min-width:640px}
  .admin th,.admin td{padding:8px 8px}
  .admin .btn,.admin button{min-height:38px}
}

/* 轻登录 */
.top__lg{margin-left:12px;background:none;border:1px solid var(--rule2);border-radius:999px;padding:4px 12px;
  font:inherit;font-size:12px;color:var(--ink2);cursor:pointer}
.top__lg:hover{border-color:var(--ink);color:var(--ink)}
@media(max-width:640px){ .toolbar__r #loginBtn{order:-1} }

/* 封面右上角登录：压在图上，白描边，一眼能看到 */
.cover__lg{position:absolute;top:22px;right:22px;z-index:4;display:inline-flex;align-items:center;gap:8px;
  background:#F6F5F0;color:var(--ink);border:1px solid #F6F5F0;border-radius:999px;font-weight:600;
  padding:8px 16px;font:inherit;font-size:13px;letter-spacing:.02em;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .18s,border-color .18s}
.cover__lg:hover{background:#fff;border-color:#fff}
.cover__lg.is-on{background:rgba(22,21,15,.45);color:#F6F5F0;border-color:rgba(246,245,240,.6);font-weight:400}
@media(max-width:640px){ .cover__lg{top:14px;right:14px;padding:8px 12px;font-size:12px} }
.nav__login{margin-left:18px;padding:8px 16px;border:1px solid var(--ink);border-radius:999px;font-size:13px;
  color:var(--ink);text-decoration:none;font-weight:600}
.nav__login:hover{background:var(--ink);color:#F6F5F0}
@media(max-width:640px){ .nav__login{margin-left:10px;padding:8px 12px;font-size:12px} }

/* 液态玻璃登录按钮（Apple 风格：半透明 + 背景模糊 + 高光边） */
.lgbtn{
  position:fixed;top:18px;right:18px;z-index:80;
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border-radius:999px;cursor:pointer;
  font:inherit;font-size:13px;font-weight:500;letter-spacing:.01em;color:var(--ink);
  background:rgba(255,255,255,.42);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 6px 22px rgba(22,21,15,.14), inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(0,0,0,.04);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  backdrop-filter:blur(22px) saturate(180%);
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.lgbtn:hover{background:rgba(255,255,255,.62);transform:translateY(-1px);box-shadow:0 10px 26px rgba(22,21,15,.18), inset 0 1px 0 rgba(255,255,255,.98)}
.lgbtn:active{transform:translateY(0)}
.lgbtn.is-on{background:rgba(22,21,15,.5);color:#F6F5F0;border-color:rgba(255,255,255,.32);box-shadow:0 6px 20px rgba(22,21,15,.22), inset 0 1px 0 rgba(255,255,255,.25)}
.lgbtn--inline{position:static;padding:8px 16px;font-size:12px;box-shadow:0 3px 12px rgba(22,21,15,.10), inset 0 1px 0 rgba(255,255,255,.9)}
@media(max-width:640px){ .lgbtn{top:12px;right:12px;padding:8px 16px;font-size:12px} }

/* 门店页顶栏（替代浮空玻璃按钮）：压在封面上，滚动后变白条 */
.snav{position:fixed;top:0;left:0;right:0;z-index:70;height:56px;display:flex;align-items:center;
  color:#F6F5F0;transition:background .22s ease,color .22s ease,border-color .22s ease;
  background:linear-gradient(180deg,rgba(10,9,6,.42),rgba(10,9,6,0));border-bottom:1px solid transparent}
.snav__in{display:flex;align-items:center;justify-content:space-between;width:100%}
.snav__logo{color:inherit;text-decoration:none;font-size:var(--t-body);letter-spacing:.02em;font-weight:600}
.snav__logo span{margin-left:8px;font-size:11px;letter-spacing:.18em;opacity:.7;font-weight:400}
.snav__r{display:flex;align-items:center;gap:16px}
.snav__b{background:none;border:0;padding:8px 0;font:inherit;font-size:13px;color:inherit;cursor:pointer;
  position:relative;opacity:.92}
.snav__b:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .2s ease;opacity:.6}
.snav__b:hover{opacity:1}
.snav__b:hover:after{transform:scaleX(1)}
.snav.is-solid{background:rgba(246,245,240,.94);color:var(--ink);border-bottom-color:#E4E1D6;
  -webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%)}
@media(max-width:640px){ .snav{height:50px} .snav__logo{font-size:13px} .snav__b{font-size:12px} }
.sheet__skip{display:block;width:100%;margin-top:10px;background:none;border:0;padding:8px 0;
  font:inherit;font-size:13px;color:#6D6450;cursor:pointer;text-align:center}
.sheet__skip:hover{color:var(--ink)}
.favbar{font-size:12px;color:#6D6450;margin:0 0 12px;letter-spacing:.01em}

/* 手机后台：卡片化后不能再撑宽 */
@media(max-width:820px){
  .admin table.cardify{min-width:0;width:100%;max-width:100%}
  .admin table.cardify td .inp,.admin table.cardify td select,
  .admin table.cardify td input,.admin table.cardify td button{max-width:100%;box-sizing:border-box}
  .admin table.cardify td .inp,.admin table.cardify td select{width:100%}
  .admin .bar{flex-wrap:wrap;gap:8px}

  .admin .bar h3{flex:1 1 100%;margin:0}
  .admin .bar > span{margin-left:0!important;flex:1 1 100%!important;font-size:13px!important}

  .admin .bar h3{font-size:15px;line-height:1.5}
  .admin .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}
  .admin .top{padding:0 16px}
  .admin #view{padding-bottom:24px}
}

/* 详情页底部的「其它东西 / 买家秀」要跟主体同宽 */
.pdse{width:min(1180px,92vw);margin:0 auto;padding:8px 0 40px}
.pdse .lookbar{display:flex;align-items:baseline;gap:16px;padding:16px 0 12px}

/* 后台表格最后一列（操作）别把按钮挤断 */
.admin #view table td:last-child{white-space:nowrap}

/* 手机上：可点区域补到 40px，别让指头点偏 */
@media(max-width:640px){
  .snav__in a,.snav__r a{display:inline-flex;align-items:center;min-height:40px}
  .chip{min-height:40px;display:inline-flex;align-items:center;padding:0 16px}
  .subchips .chip{min-height:36px}
  .tbtn{min-height:40px;padding:0 12px}
  .consent{min-height:44px;align-items:center}
  .consent input{width:20px;height:20px}
  .ft a{display:inline-flex;align-items:center;min-height:40px}
  .pc__heart{width:36px;height:36px}
}
@media(max-width:640px){ .consent a{padding:8px 4px} }
@media(max-width:640px){
  .back{display:inline-flex;align-items:center;min-height:40px;padding:0 4px}
  .lookbar__more,.cover__meta a{display:inline-flex;align-items:center;min-height:32px;padding:0 4px}
  .favbtn{min-height:36px}
}

/* ===== 页面入场：纸色 → 内容（替代浏览器 view transition，避免两页重叠） ===== */

/* ==========================================================================
   动效统一层（motion）—— 目标：安静、跟手、不晃眼
   原则：只做 1–3px 的位移与 0.5s 以上的缓动，不做弹跳；
        所有动效都可被 prefers-reduced-motion 关闭。
   ========================================================================== */
:root{--ease-out:cubic-bezier(.22,.61,.36,1);--ease-soft:cubic-bezier(.32,.72,0,1)}

@media (prefers-reduced-motion: no-preference){
  html{scroll-behavior:smooth}
}
/* 锚点跳到 #list 时，别被固定顶栏压住 */
html{scroll-padding-top:76px}
#list{scroll-margin-top:76px}

/* 顶栏：从透明到实底的那一下，要有过渡而不是硬切 */
.snav{
  transition:background-color .26s var(--ease-out),color .26s var(--ease-out),
             border-color .26s var(--ease-out),box-shadow .26s var(--ease-out),
             backdrop-filter .26s var(--ease-out);
}
.snav.is-solid{box-shadow:0 1px 0 rgba(22,21,15,.05),0 10px 26px -20px rgba(22,21,15,.4)}

/* 「往下看全部 →」：下划线从左往右长出来 */
.cover__meta a{position:relative;border-bottom:0;padding-bottom:2px;transition:color .2s var(--ease-out)}
.cover__meta a:after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(.55);transform-origin:left;opacity:.5;
  transition:transform .3s var(--ease-out),opacity .3s var(--ease-out);
}
.cover__meta a:hover:after{transform:scaleX(1);opacity:1}

/* 商品卡：悬停只抬 2px，图片用更长的缓动慢慢贴近 */
@media (hover:hover) and (pointer:fine){
  .store .pc{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color .3s}
  .store .pc:hover{transform:translateY(-2px)}
  .store .pc .pc__im img{transition:transform 1.1s var(--ease-soft)}
  .store .pc:hover .pc__im img{transform:scale(1.028)}
  .btn:hover{transform:translateY(-1px)}
}
.pc,.btn,.chip,.pill,.snav__b,.favbtn,.actbtn,.actbar__go{
  transition:transform .18s var(--ease-out),background-color .2s var(--ease-out),
             color .2s var(--ease-out),border-color .2s var(--ease-out),box-shadow .2s var(--ease-out);
}
.btn:active,.chip:active,.pill:active,.favbtn:active,.actbtn:active{transform:scale(.985)}

/* 键盘焦点统一，别用浏览器默认的蓝框 */
:focus-visible{outline:2px solid #6E5828;outline-offset:3px;border-radius:0}

@media (prefers-reduced-motion: reduce){
  .pc,.pc .pc__im img,.btn,.chip,.pill,.favbtn,.snav,.actbtn,.actbar__go,.cover__meta a:after{
    transition:none !important;animation:none !important;
  }
  .store .pc:hover{transform:none}
  .store .pc:hover .pc__im img{transform:none}
}

/* 骨架屏：极慢的光扫，暗示"在加载"而不是卡死 */
.store .pc.skel .pc__im{
  background:linear-gradient(100deg,#EFEEE9 28%,#F8F7F3 46%,#EFEEE9 64%);
  background-size:220% 100%;animation:slcSkel 1.6s linear infinite;
}
@keyframes slcSkel{from{background-position:120% 0}to{background-position:-120% 0}}
@media (prefers-reduced-motion: reduce){ .store .pc.skel .pc__im{animation:none} }

/* 配货台：按商品折叠的分组 */
.pickg{border:1px solid var(--rule);border-radius:12px;margin:0 0 12px;background:#fff;overflow:hidden}
.pickg>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px 16px;font-size:15px;color:var(--ink)}
.pickg>summary::-webkit-details-marker{display:none}
.pickg>summary:before{content:"+";width:16px;text-align:center;color:#6D6450;font-size:var(--t-lead);transition:transform .2s var(--ease-out)}
.pickg[open]>summary:before{content:"−"}
.pickg[open]>summary{border-bottom:1px solid var(--rule);background:#FCFBF7}
.pickg__n{margin-left:auto;font-size:13px;color:#6D6450}
.pickg table{width:100%;border:0}
.pickg th,.pickg td{border-left:0;border-right:0}
.pickrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pickrow .inp{flex:1 1 130px;min-width:120px;max-width:200px}
.pickrow .btn{flex:none}
.pickg td{white-space:normal}

/* ==========================================================================
   后台整理层（admin tidy）—— 统一间距、表格、页头、页签分组
   ========================================================================== */
.admin .tabs{display:flex;align-items:center;gap:0;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--rule)}
.admin .tabs::-webkit-scrollbar{display:none}
.admin .tab{
  position:relative;background:none;border:0;cursor:pointer;font:inherit;font-size:var(--t-body);color:#6D6450;
  padding:16px 4px;margin-right:24px;white-space:nowrap;border-radius:0;
  transition:color .2s var(--ease-out);
}
.admin .tab:hover{color:var(--ink)}
.admin .tab[aria-selected="true"]{color:var(--ink);font-weight:600}
.admin .tab[aria-selected="true"]:after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);border-radius:0;
}
.admin .tabs__sep{flex:none;width:1px;height:16px;background:var(--rule2);margin:0 20px 0 0}

/* 每个视图的页头 */
.admin .bar{
  display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;
  padding:24px 0 16px;margin:0 0 16px;border-bottom:0;
}
.admin .bar h3{font-size:17px;font-weight:600;color:var(--ink);margin:0;letter-spacing:-.01em}
.admin .bar>span{margin-left:auto;font-size:13px;color:#6D6450}
.admin .bar .btn--sm{font-size:13px}

/* 表格：白卡 + 圆角 + 行分隔 */
.admin table{border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.admin thead th{background:#FCFBF7;font-size:12px;color:#6D6450;font-weight:500;letter-spacing:.04em;padding:12px}
.admin tbody td{padding:16px 12px;border-top:1px solid var(--rule);font-size:var(--t-body);vertical-align:middle}
.admin tbody tr:hover td{background:#FCFBF7}
.admin .kv{color:#6D6450;font-size:12px;margin-top:3px}

/* 概览磁贴 */
.admin .tile{border-radius:12px;border:1px solid var(--rule);background:#fff;padding:16px 20px;box-shadow:none}
.admin .tile b{font-size:var(--t-h2);letter-spacing:-.01em}
.admin .tile span{font-size:13px;color:#6D6450}

/* 表单控件在后台统一高度 */
.admin .inp,.admin select{height:38px;border-radius:var(--r);border:1px solid var(--rule2);background:#fff;font-size:var(--t-body);padding:0 8px}
.admin .inp:focus,.admin select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,21,15,.06)}
.admin textarea.inp{height:auto;padding:8px}

/* 视图之间的呼吸 */
.admin #view{padding:0 0 40px}
.admin .hr{height:1px;background:var(--rule);margin:24px 0;border:0}

@media(max-width:820px){
  .admin .tab{padding:12px 4px;margin-right:18px;font-size:13px}
  .admin .tabs__sep{margin-right:14px}
  .admin .bar{padding:16px 0 8px}
  .admin .bar h3{font-size:15px}
}

/* 发货台的状态列：三个控件横排不撑破卡片 */
.admin td.opc{white-space:nowrap}
.admin td.opc .inp,.admin td.opc select{max-width:112px;display:inline-block;margin:0 8px 8px 0;vertical-align:middle}
.admin td.opc input[data-track]{max-width:150px}

/* 分段控件（订单/商品/门店 内部切换） */
.seg{display:inline-flex;gap:4px;padding:4px;background:#F1EFE7;border-radius:var(--r);margin:4px 0 16px}
.seg__b{background:none;border:0;cursor:pointer;font:inherit;font-size:13px;color:#6D6450;padding:8px 16px;border-radius:var(--r);
  transition:background-color .2s var(--ease-out),color .2s var(--ease-out),box-shadow .2s var(--ease-out)}
.seg__b:hover{color:var(--ink)}
.seg__b[aria-pressed="true"]{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(22,21,15,.08)}
.logbox{max-height:46vh;overflow:auto;border-radius:12px}
@media(max-width:820px){ .seg{display:flex;width:100%} .seg__b{flex:1;text-align:center;padding:8px 8px} }
.seg{margin:0 0 8px}
.admin #view>.seg+.bar{padding-top:14px}


/* 悬停：出现一小截横线；选中：白色蒙版下沿带圆角（上沿保持平直） */
.admin .tabs{border-bottom:1px solid var(--ink);gap:4px}
.admin .tab{position:relative}
.admin .tab:after{content:"";position:absolute;left:50%;bottom:6px;width:0;height:2px;
  background:var(--ink);border-radius:0;transform:translateX(-50%);transition:width .18s ease}
.admin .tab:hover:after{width:16px}
.admin .tab[aria-selected="true"]:after{display:none}
/* 所有页签同尺寸：切换时不会因为内边距变化而抖动 */
.admin .tab{padding:12px 16px;margin-right:6px}
.admin .tab[aria-selected="true"]{background:#fff;border:0;
  border-radius:0 0 10px 10px;margin-bottom:-1px;
  box-shadow:0 8px 14px -12px rgba(22,21,15,.55)}

/* 切换视图的入场动效 */
@keyframes adminViewIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.admin #view.view-in{animation:adminViewIn .22s cubic-bezier(.22,.61,.36,1) both}
@media (prefers-reduced-motion: reduce){ .admin #view.view-in{animation:none} }

/* 后台「服务器」页 */
.srv{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.srv__c{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 16px}
.srv__k{font-size:12px;letter-spacing:.12em;color:#6D6450}
.srv__v{font-size:var(--t-h2);font-weight:600;color:var(--ink);margin:4px 0 8px;font-variant-numeric:tabular-nums}
.srv__v small{font-size:12px;color:#6D6450;font-weight:400;margin-left:6px}
.srv__bar{height:8px;background:#EFEDE4;border-radius:99px;overflow:hidden}
.srv__bar i{display:block;height:100%;border-radius:99px;transition:width .4s}

/* 筛选条 / 线索筛选按钮 / 新线索高亮 / 弹层分段 */
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.segbtn{border:1px solid var(--rule2);background:#fff;border-radius:999px;padding:8px 16px;font-size:13px;color:var(--ink2);cursor:pointer}
.segbtn b{font-weight:600;color:#6D6450;margin-left:2px}
.segbtn.on{background:var(--ink);border-color:var(--ink);color:#fff}
.segbtn.on b{color:#E7DCC0}
tr.is-fresh td:first-child{box-shadow:inset 3px 0 0 #B79A5B}
.psegs{display:flex;gap:8px;margin:0 0 16px;border-bottom:1px solid var(--rule);padding-bottom:10px}
.psegs button{border:0;background:none;padding:8px 12px;border-radius:var(--r);font-size:13px;color:#6D6450;cursor:pointer}
.psegs button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(22,21,15,.08)}
.pseg{display:none}
.pseg.on{display:block}

/* 筛选按钮：矩形（不再用胶囊），与页签风格一致 */
.segbtn{border-radius:var(--r);border:1px solid var(--rule2);background:#fff;padding:8px 12px;font-size:13px;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .1s ease}
.segbtn:hover{background:#FAF8F2;border-color:var(--rule2)}
.segbtn:active{transform:scale(.97)}
.segbtn.on{background:var(--ink);border-color:var(--ink);color:#fff}
.segbtn.on b{color:#E7DCC0}

/* 后台统一的交互动效（克制、短） */
.admin .btn{transition:background .16s ease,color .16s ease,border-color .16s ease,transform .1s ease}
.admin .btn:hover{transform:translateY(-1px)}
.admin .btn:active{transform:scale(.98)}
.admin .tab{transition:color .16s ease}
.admin .inp,.admin select{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.admin table tbody tr{transition:background .16s ease}
.admin .thumbs button{transition:transform .18s ease,opacity .18s ease}
.admin .thumbs button:hover{transform:translateY(-2px)}
.admin .tile,.admin .pcard{transition:box-shadow .18s ease,transform .18s ease}
.admin .tile:hover,.admin .pcard:hover{transform:translateY(-1px);box-shadow:0 10px 24px -18px rgba(22,21,15,.5)}

/* 弹层出现：淡入 + 轻微上浮 */
@keyframes slcSheetIn{from{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
.admin .mask[data-open="1"] .sheet{animation:slcSheetIn .2s ease-out both}
@media (prefers-reduced-motion: reduce){ *{animation:none !important;transition:none !important} }

/* 店长手记：像便签，不像正文 */
.dsec .note{
  position:relative;margin:4px 0 0;padding:16px 16px 16px 16px;
  background:#FCFAF2;border:1px solid var(--rule);border-radius:var(--r);
  font-size:var(--t-body);line-height:1.85;color:var(--ink2);white-space:pre-wrap;
}
.dsec .note:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0;background:#B79A5B}

/* 工具栏里的「查单」链接长得像按钮 */
a.favbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
a.favbtn:hover{border-color:var(--ink)}

/* ===== 门店页米色亚麻底（仅 body.store） ===== */
body.store{
  --paper:#FBF6E9; --bg:#EFE7D6; --plate:#F4EDDD;
  --rule:#DFD2B8; --rule2:#D3C4A6; --ink3:#6D6450;
  background:#F6F5F0;
}
body.store .ft{background:transparent;border-top-color:var(--rule)}
body.store .pc{background:var(--paper)}
body.store .bar-sticky{margin-top:12px;background:rgba(239,231,214,.92);backdrop-filter:blur(10px) saturate(120%);
  -webkit-backdrop-filter:blur(10px) saturate(120%);border-bottom:1px solid rgba(120,100,64,.10)}
body.store .toolbar{background:transparent;border-bottom-color:rgba(120,100,64,.14)}
body.store .subchips{background:transparent}
body.store .shop{background:transparent}

/* 浏览态彻底移除 LOOK 条，避免留白 */
.store .lookbar.is-meta{display:none !important;min-height:0;padding:0;border:0}

/* LOOK 小标题已并入分类条，整块移除（避免选中分类时的跳位与空档） */
.store .lookbar{display:none !important}

/* 手机端：分类条与封面留一点呼吸 */
@media(max-width:640px){ body.store .bar-sticky{margin-top:10px} }
body.store .store__main{padding-top:10px}

/* ===== 动效层 v2：统一节奏、按压与弹层 ===== */
.toast{transform:translate(-50%,12px);transition:opacity .2s ease,transform .34s cubic-bezier(.34,1.42,.64,1)}
.toast[data-on="1"]{transform:translate(-50%,0)}
.mask[data-open="1"] .sheet{animation:slcSheetIn .3s cubic-bezier(.34,1.42,.64,1) both}
@keyframes slcSheetIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.chip,.btn,.btn--g,.btn--sm,.fab,.favbtn,.tab,.pill,.pc__heart{transition:transform .12s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}
.chip:active,.btn:active,.btn--g:active,.btn--sm:active,.fab:active,.favbtn:active,.pc__heart:active{transform:scale(.96)}
.gal__main img{transition:opacity .26s ease}
.gal__main img.img-swap{opacity:0}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}}

/* 详情页缩略图：选中态与按压 */
#gThumbs button{transition:border-color .18s ease,transform .18s ease,opacity .18s ease}
#gThumbs button:hover{opacity:.86}
#gThumbs button.on{border-color:var(--ink);transform:translateY(-1px)}

/* 手机端底部常驻条：价格 + 想要这件 */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;align-items:center;gap:12px;
  padding:8px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(251,250,246,.94);backdrop-filter:blur(14px) saturate(140%);
  border-top:1px solid var(--rule);transform:translateY(102%);transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.buybar.on{transform:none}
.buybar__p{font-size:var(--t-h3);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.buybar__go{margin-left:auto;min-width:132px}
@media(min-width:821px){.buybar{display:none !important}}

/* 手机端：给底部常驻条留出空间，别盖住页脚 */
@media(max-width:820px){ body.detail{padding-bottom:84px} }

/* 后台：店铺显示开关 */
.admin .sw{width:38px;height:22px;border-radius:99px;background:#D8D2C2;position:relative;display:inline-block;border:0;cursor:pointer;transition:background .2s ease;vertical-align:middle}
.admin .sw:after{content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.18);transition:left .2s ease}
.admin .sw.on{background:#2F6B3F}
.admin .sw.on:after{left:18px}
.admin textarea.inp{width:100%;max-width:560px;min-height:76px;resize:vertical;line-height:1.6}

#favBtn #favN{color:var(--ink);font-weight:600}

.cover__meta a{display:inline-block;padding:4px 0}
.tracklink a{display:inline-block;padding:4px 0}

/* P0 · 展示字体收口：标题用宋，正文用黑 */
h1,h2,.display{font-family:var(--serif);font-weight:400;letter-spacing:.01em}

/* P0 · 展示字体收口（覆盖组件内联声明） */
h1,h2,.display,.cover .quote__t,.quote .quote__t,.cover__title,.pd h1{font-family:var(--serif) !important;font-weight:400;letter-spacing:.01em}
.cover .quote__t mark,.quote .quote__t mark{font-weight:600}

/* 发货台：状态/物流三件套不再挤穿表格 */
.admin td.opc{white-space:normal;min-width:220px}
.admin td.opc .inp{display:block;width:190px;max-width:190px;margin:0 0 6px}
.admin td.opc .inp:last-child{margin-bottom:0}
@media(min-width:1280px){
  .admin td.opc{min-width:0}
  .admin td.opc .inp{display:inline-block;width:auto;margin:0 6px 0 0;vertical-align:middle}
  .admin td.opc select{max-width:104px}
  .admin td.opc input[data-track]{max-width:158px}
}

/* 切页时的即时反馈：旧内容变淡，渲染完恢复 */
.admin #view.is-busy{opacity:.45;transition:opacity .12s ease}
