/* =========================================================================
 * USLATIAO 自建站 · 全站样式（light 暖色调，红 = 品牌强调）
 * ========================================================================= */
:root{
  --cream:#faf7f2; --paper:#ffffff; --ink:#1c1917; --ink-2:#44403c; --ink-3:#78716c;
  --line:#e7e5e4; --red:#c8342a; --red-soft:#fdf2f0; --green:#15803d; --green-soft:#f0fdf4;
  --gold:#b8860b; --shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.05);
  --radius:14px; --maxw:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--cream); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  line-height:1.6; font-size:15px; -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.container{max-width:var(--maxw); margin:0 auto; padding:0 20px}
.btn{
  display:inline-block; padding:13px 26px; border-radius:999px; font-weight:700; font-size:14px;
  cursor:pointer; border:2px solid var(--ink); background:var(--ink); color:#fff; transition:.15s;
  text-align:center;
}
.btn:hover{transform:translateY(-1px); box-shadow:var(--shadow)}
.btn.ghost{background:transparent; color:var(--ink)}
.btn.red{background:var(--red); border-color:var(--red)}
.btn.red:hover{background:#a82a22}
.btn.small{padding:8px 16px; font-size:13px}
.btn:disabled{opacity:.5; cursor:not-allowed; transform:none}
.muted{color:var(--ink-3)}
.center{text-align:center}
.tag{display:inline-block; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 10px; border-radius:999px; background:var(--red-soft); color:var(--red); border:1px solid #f5d5d1}
.tag.green{background:var(--green-soft); color:var(--green); border-color:#bbf7d0}

/* —— 公告栏 —— */
.announce{background:var(--ink); color:#fff; text-align:center; font-size:12.5px; letter-spacing:.04em; padding:9px 14px}

/* —— 顶栏 —— */
.topbar{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.topbar .container{display:flex; align-items:center; gap:20px; height:64px}
.brand{font-weight:800; font-size:20px; letter-spacing:-.01em}
.brand small{display:block; font-size:10px; font-weight:600; letter-spacing:.16em; color:var(--ink-3); text-transform:uppercase}
.nav{display:flex; gap:22px; margin-left:8px; font-size:14px; font-weight:600}
.nav a{padding:6px 2px; border-bottom:2px solid transparent}
.nav a.active,.nav a:hover{border-bottom-color:var(--red); color:var(--red)}
.topbar .spacer{flex:1}
.iconlink{position:relative; font-size:14px; font-weight:600; padding:8px 10px}
.cart-count{position:absolute; top:0; right:0; background:var(--red); color:#fff; font-size:10px;
  min-width:17px; height:17px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-weight:800}
.hamburger{display:none; font-size:22px; cursor:pointer; background:none; border:none}

/* —— Hero —— */
.hero{background:linear-gradient(120deg,#fdeee9 0%,#faf7f2 55%, #fff 100%); padding:64px 0 56px; overflow:hidden}
.hero .container{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.hero .eyebrow{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--red); font-weight:800}
.hero h1{font-size:46px; line-height:1.1; margin:14px 0 16px; font-weight:850; letter-spacing:-.02em}
.hero p.lead{font-size:17px; color:var(--ink-2); max-width:480px}
.hero .badges{display:flex; gap:10px; flex-wrap:wrap; margin:22px 0}
.hero .badge{font-size:12px; font-weight:700; padding:7px 13px; border-radius:999px; background:#fff; border:1px solid var(--line)}
.hero .cta{display:flex; gap:12px; margin-top:8px}
.hero-art{background:linear-gradient(135deg,var(--red) 0%, #e05a4e 100%); border-radius:24px; min-height:320px;
  display:flex; align-items:center; justify-content:center; color:#fff; position:relative; box-shadow:var(--shadow)}
.hero-art.bare{background:none; box-shadow:none; min-height:0; padding:0; display:block}
.hero-art.bare .hero-img{width:100%; max-height:420px; object-fit:cover; border-radius:var(--radius)}
.vrow{display:grid;grid-template-columns:1.15fr 1fr .8fr .8fr .6fr .52fr .5fr 1.25fr 28px;gap:8px;margin-bottom:6px;align-items:center}
.v-img-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.v-img-cell .v-img-prev{width:42px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}
.v-img-cell .btn{padding:2px 7px;font-size:11px;line-height:1.6}
.vrow.vhead{margin-bottom:2px}
.vrow.vhead span{font-size:12px;color:#999;font-weight:600;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vrow input{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:13px;width:100%;box-sizing:border-box}
.vrow select{padding:6px 4px;border:1px solid var(--line);border-radius:8px;font-size:12px;width:100%;box-sizing:border-box;background:#fff;font-family:inherit}
.variants-block{margin:4px 0 14px}
.opt-name{font-size:13px;color:#555;margin-bottom:8px}
.opt-name b{color:var(--ink);font-weight:750}
.variants{display:flex;flex-wrap:wrap;gap:10px}
.vbtn{padding:10px 14px;border:1.5px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:120px;text-align:left;transition:border-color .15s}
.vbtn:hover{border-color:#b8b2a8}
.vbtn.sel{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.vbtn .vimg{width:100%;height:52px;object-fit:cover;border-radius:6px;margin-bottom:4px}
.vbtn .vlabel{font-weight:700;font-size:13.5px;color:var(--ink)}
.vbtn .vprice{font-size:13px;color:#888}
.vbtn.sel .vlabel,.vbtn.sel .vprice{color:var(--red)}
.hero-art.bare .small{position:absolute; left:0; right:0; bottom:0; margin:0; padding:14px 16px; color:#fff;
  background:linear-gradient(0deg, rgba(0,0,0,.55), rgba(0,0,0,0)); border-radius:0 0 var(--radius) var(--radius)}
.hero-art .plate{text-align:center; padding:30px}
.hero-art .plate .big{font-size:60px; font-weight:850; line-height:1}
.hero-art .plate .small{font-size:14px; opacity:.92; margin-top:10px; max-width:240px}

/* —— 区块通用 —— */
.section{padding:54px 0}
.section h2{font-size:28px; font-weight:820; letter-spacing:-.01em; margin:0 0 6px}
.section .sub{color:var(--ink-3); margin:0 0 26px}
.kicker{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--red); font-weight:800; display:block; margin-bottom:8px}

/* —— 品类快捷入口 —— */
.cat-strip{display:flex; gap:14px; flex-wrap:wrap}
.cat-strip a{flex:1; min-width:150px; background:var(--paper); border:1px solid var(--line); border-radius:12px;
  padding:18px; font-weight:700; text-align:center; transition:.15s}
.cat-strip a:hover{border-color:var(--red); color:var(--red); transform:translateY(-2px)}

/* —— 产品网格 —— */
.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:.15s}
.card:hover{box-shadow:var(--shadow); transform:translateY(-3px)}
.card .thumb{aspect-ratio:1/1; background:linear-gradient(135deg,#fff 0%,#faf7f2 100%); display:flex;
  align-items:center; justify-content:center; position:relative; border-bottom:1px solid var(--line); overflow:hidden}
.card .thumb .ph{font-size:13px; font-weight:800; color:var(--ink-3); text-align:center; padding:10px}
.card .badge-corner{position:absolute; top:10px; left:10px; z-index:2; font-size:10px; font-weight:800;
  background:var(--ink); color:#fff; padding:4px 9px; border-radius:999px; letter-spacing:.04em}
.card .body{padding:16px; display:flex; flex-direction:column; flex:1}
.card h3{font-size:16px; margin:0 0 6px; font-weight:750; line-height:1.3}
.card .sub2{font-size:13px; color:var(--ink-3); margin:0 0 12px; flex:1}
.card .price{font-size:18px; font-weight:800; margin-bottom:12px}
.card .price .old{font-size:13px; color:var(--ink-3); text-decoration:line-through; margin-left:8px; font-weight:600}
.card .heat{display:flex; gap:3px; margin-bottom:12px; align-items:center}
.card .heat .dot{width:14px; height:8px; border-radius:3px; background:var(--line)}
.card .heat .dot.on{background:var(--red)}
.card .heat .lbl{font-size:11px; font-weight:700; color:var(--ink-3); margin-left:6px}

/* —— 商品图片（上传 / 显示） —— */
/* 图片绝对定位铺满缩略框：容器高度严格锁 1:1，所有商品卡尺寸一致（不随图片原始比例变化） */
.card .thumb .pimg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.admin-thumb{width:48px; height:48px; object-fit:cover; border-radius:8px; border:1px solid var(--line); display:block}

/* —— 后台多图上传 —— */
.img-grid{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start}
.img-cell{position:relative; width:96px; height:96px; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#faf7f2; cursor:grab}
.img-cell.dragging{opacity:.45; cursor:grabbing; border-style:dashed}
.img-cell img{width:100%; height:100%; object-fit:cover; display:block}
.img-cell .img-del{position:absolute; top:3px; right:3px; width:20px; height:20px; border-radius:50%;
  background:rgba(0,0,0,.6); color:#fff; border:none; font-size:14px; line-height:1; cursor:pointer; padding:0}
.img-cell .img-main-tag{position:absolute; bottom:0; left:0; right:0; background:rgba(217,68,43,.92); color:#fff;
  font-size:10px; font-weight:800; text-align:center; padding:2px 0; letter-spacing:.04em}

/* —— 详情页画廊（产品图 + 详情图） —— */
.gal-main{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  aspect-ratio:1/1; background:linear-gradient(135deg,#fff,#faf7f2)}
.gal-main img{width:100%; height:100%; object-fit:cover; display:block}
.gal-thumbs{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap}
.gal-thumb{width:64px; height:64px; object-fit:cover; border:2px solid var(--line); border-radius:8px; cursor:pointer; background:#fff}
.gal-thumb.sel{border-color:var(--red)}
.detail-gal{display:flex; flex-direction:column; gap:12px; margin-top:16px}
.detail-gal img{width:100%; border:1px solid var(--line); border-radius:12px; display:block}

/* —— 价值条 —— */
.values{display:grid; grid-template-columns:repeat(5,1fr); gap:16px}
.value{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:22px 18px; text-align:center}
.value .ic{font-size:26px; margin-bottom:10px}
.value h4{font-size:15px; margin:0 0 6px}
.value p{font-size:13px; color:var(--ink-3); margin:0}

/* —— 品牌故事 —— */
.story{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:40px}
.story h2{font-size:26px}
.story .muted{max-width:680px; margin-left:0}

/* —— Drop 横幅 —— */
.drop{background:linear-gradient(120deg,var(--ink),#3a3a36); color:#fff; border-radius:var(--radius); padding:34px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap}
.drop .lt .kick{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#f0b8b2; font-weight:800}
.drop .lt h3{font-size:24px; margin:8px 0 6px}
.drop .lt p{color:#d6d3d1; margin:0; font-size:14px}

/* —— 页脚 —— */
footer{background:var(--ink); color:#cfcabf; margin-top:60px; padding:48px 0 30px}
footer .cols{display:grid; grid-template-columns:repeat(4,1fr); gap:28px}
footer h5{color:#fff; font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin:0 0 14px}
footer a{display:block; font-size:13.5px; padding:4px 0; color:#cfcabf}
footer a:hover{color:#fff}
footer .bottom{border-top:1px solid rgba(255,255,255,.12); margin-top:34px; padding-top:20px; font-size:12px; color:#9a958c; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px}

/* —— 通用页眉 —— */
.page-head{padding:40px 0 10px}
.page-head h1{font-size:34px; font-weight:840; letter-spacing:-.01em; margin:0 0 8px}

/* —— 产品详情 —— */
.pdp{display:grid; grid-template-columns:.9fr 1.1fr; gap:44px; align-items:start}
.pdp .gallery .main{background:linear-gradient(135deg,#fff,#faf7f2); border:1px solid var(--line); border-radius:var(--radius); aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; color:var(--ink-3); font-weight:800}
.pdp .bullets{list-style:none; padding:0; margin:18px 0}
.pdp .bullets li{padding:9px 0; border-bottom:1px solid var(--line); font-size:14.5px; display:flex; gap:10px}
.pdp .bullets li:before{content:"✓"; color:var(--green); font-weight:800}
.pdp .price{font-size:30px; font-weight:850; margin:10px 0}
.pdp .price .old{font-size:18px; color:var(--ink-3); text-decoration:line-through; margin-left:10px; font-weight:600}
.pdp .block{margin:24px 0; padding:20px; background:var(--paper); border:1px solid var(--line); border-radius:12px}
.pdp .block h4{margin:0 0 8px; font-size:15px}
.pdp .block p{margin:0; color:var(--ink-2); font-size:14.5px}
.heatbar{display:flex; gap:5px; margin:14px 0}
.heatbar .seg{height:10px; flex:1; border-radius:4px; background:var(--line)}
.heatbar .seg.on{background:var(--red)}

/* —— 表单 —— */
.form{max-width:420px; margin:0 auto}
.field{margin-bottom:16px}
.field label{display:block; font-size:13px; font-weight:700; margin-bottom:6px}
.field input,.field textarea,.field select{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font-size:15px; font-family:inherit; background:#fff}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--red)}
.note{background:var(--red-soft); border:1px solid #f5d5d1; color:#7f1d1d; border-radius:10px; padding:12px 16px; font-size:13.5px; margin:14px 0}
.note.green{background:var(--green-soft); border-color:#bbf7d0; color:#14532d}
.note.blue{background:#eff6fd; border-color:#bcdcf7; color:#123f68}

/* —— 购物车 / 订单 —— */
.line{display:grid; grid-template-columns:64px 1fr auto auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line)}
.line .t{font-weight:700}
.line .qty{display:flex; align-items:center; gap:8px}
.line .qty button{width:28px; height:28px; border-radius:8px; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:16px}
.summary{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:24px}
.summary .row{display:flex; justify-content:space-between; padding:8px 0; font-size:15px}
.summary .row.total{font-size:20px; font-weight:850; border-top:1px solid var(--line); margin-top:8px; padding-top:14px}

/* —— 后台 —— */
.admin-tabs{display:flex; gap:10px; margin:20px 0}
.admin-tabs button{padding:10px 18px; border:1px solid var(--line); background:#fff; border-radius:10px; cursor:pointer; font-weight:700}
.admin-tabs button.active{background:var(--ink); color:#fff; border-color:var(--ink)}
table.admin{width:100%; border-collapse:collapse; font-size:14px; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden}
table.admin th{text-align:left; font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-3); padding:12px; border-bottom:1px solid var(--line); background:var(--cream)}
table.admin td{padding:12px; border-bottom:1px solid var(--line); vertical-align:top}
table.admin tr:last-child td{border-bottom:none}
/* 可滚动表格容器：商品多了不用把整页拉老长，表头吸顶 */
.tbl-scroll{max-height:min(430px,55vh); overflow-y:auto; overflow-x:hidden; border:1px solid var(--line); border-radius:10px; background:#fff}
.tbl-scroll table.admin{border:none; border-radius:0}
.tbl-scroll thead th{position:sticky; top:0; z-index:2; box-shadow:inset 0 -1px 0 var(--line)}
.tbl-scroll tbody tr:last-child td{border-bottom:none}
.sel-count{font-size:12px; color:var(--ink-3); margin-top:8px}

/* —— Toast —— */
#toast{position:fixed; top:80px; left:50%; transform:translateX(-50%) translateY(-20px); background:var(--ink); color:#fff;
  padding:12px 22px; border-radius:999px; font-size:14px; font-weight:600; opacity:0; pointer-events:none; transition:.25s; z-index:200; box-shadow:var(--shadow)}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

/* —— 响应式 —— */
@media(max-width:900px){
  .hero .container{grid-template-columns:1fr}
  .hero-art{order:-1; min-height:200px}
  .grid{grid-template-columns:repeat(2,1fr)}
  .values{grid-template-columns:repeat(2,1fr)}
  .pdp{grid-template-columns:1fr}
  footer .cols{grid-template-columns:repeat(2,1fr)}
  .nav{display:none; position:absolute; top:64px; left:0; right:0; background:#fff; flex-direction:column; padding:14px 20px; border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .hamburger{display:block}
}
@media(max-width:520px){
  .grid{grid-template-columns:1fr}
  .values{grid-template-columns:1fr}
  .hero h1{font-size:34px}
}

/* —— 后台 · 数据统计看板 —— */
.kpi-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin:6px 0 24px}
.kpi{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:18px 16px}
.kpi .kpi-v{font-size:26px; font-weight:850; letter-spacing:-.01em}
.kpi .kpi-l{font-size:12.5px; color:var(--ink-3); margin-top:4px}
.chart-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.chart-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px}
.chart-card h4{margin:0 0 12px; font-size:14px; font-weight:750}

/* —— 后台 · 订单筛选 —— */
.filter-row{display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 18px}
.filter-btn{padding:8px 14px; border:1px solid var(--line); background:#fff; border-radius:999px; cursor:pointer; font-weight:700; font-size:13px; display:inline-flex; align-items:center; gap:6px}
.filter-btn.active{background:var(--ink); color:#fff; border-color:var(--ink)}
.filter-btn .badge{font-size:11px; font-weight:800; background:var(--red-soft); color:var(--red); border-radius:999px; padding:1px 7px; min-width:18px; text-align:center}
.filter-btn.active .badge{background:rgba(255,255,255,.22); color:#fff}

/* —— 后台 · 状态徽章 —— */
.tag.tag-off{background:#f4f4f5; color:#71717a; border-color:#e4e4e7}

/* —— 结账 · 折扣码 —— */
.disc-row{display:flex; gap:8px; margin-top:14px}
.disc-row input{flex:1; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-size:14px; font-family:inherit}
.disc-row input:focus{outline:none; border-color:var(--red)}

/* —— 后台 · 工具行 / 评价 —— */
.tool-row{display:flex; gap:10px; flex-wrap:wrap; margin:16px 0}
.review{padding:14px 0; border-bottom:1px solid var(--line)}
.review .stars{color:var(--gold); font-size:16px; margin-bottom:4px}
.review strong{display:block; margin-bottom:4px}
.review p{margin:4px 0}

/* —— 后台 · 表格内可编辑输入框（物流设置 费率表 / 区域表） —— */
table.admin input, table.admin select{width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:8px; font-size:14px; font-family:inherit; background:#fff}
table.admin input:focus, table.admin select:focus{outline:none; border-color:var(--red)}

/* —— 首页装修 · 头图上传图（无图时回退 emoji 占位） —— */
.hero-art .plate img.hero-img{width:100%; max-height:380px; object-fit:cover; display:block; border-radius:var(--radius)}

/* =========================================================================
 * 货架式 Aisle 风格：搜索优先 + 密集陈列 + 横向货架排（参考杂货店店面）
 * ========================================================================= */

/* —— 顶栏搜索框 —— */
.topsearch{flex:1; max-width:460px; position:relative; display:flex}
.topsearch input{width:100%; border-radius:999px; border:1px solid var(--line); background:#fff;
  padding:9px 16px 9px 36px; font-size:13.5px; font-family:inherit; color:var(--ink)}
.topsearch input::placeholder{color:#a8a29e}
.topsearch input:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px var(--red-soft)}
.topsearch .ic{position:absolute; left:13px; top:50%; transform:translateY(-50%);
  width:13px; height:13px; border:1.5px solid var(--ink-3); border-radius:50%; pointer-events:none}
.topsearch .ic:after{content:""; position:absolute; left:9px; top:9px; width:6px; height:1.5px;
  background:var(--ink-3); transform:rotate(45deg); transform-origin:left center}

/* —— 信任条 —— */
.trustbar{background:#fff; border-bottom:1px solid var(--line); font-size:12.5px; color:var(--ink-2)}
.trustbar .container{display:flex; gap:24px; align-items:center; padding:9px 20px; flex-wrap:wrap}
.trustbar .t{display:flex; align-items:center; gap:7px; font-weight:600; white-space:nowrap}
.trustbar .t i{width:15px; height:15px; border-radius:50%; background:var(--green-soft);
  border:1px solid #bbf7d0; position:relative; flex:0 0 15px}
.trustbar .t i:after{content:""; position:absolute; left:4px; top:5px; width:6px; height:3px;
  border-left:1.5px solid var(--green); border-bottom:1.5px solid var(--green); transform:rotate(-45deg)}
.trustbar .t b{color:var(--red)}

/* —— 促销条（折扣码） —— */
.promo{display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #f5d5d1;
  border-radius:var(--radius); padding:12px 16px; margin-bottom:22px; flex-wrap:wrap}
.promo .code{background:var(--red); color:#fff; font-size:11.5px; font-weight:800; letter-spacing:.08em;
  padding:4px 10px; border-radius:6px}
.promo .txt{font-size:13.5px; font-weight:750}
.promo .sub{font-size:12px; color:var(--ink-3); margin-left:auto}

/* —— 货架式窄版头图（不抢商品位置）—— */
.hero-slim{background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:20px 22px; margin-bottom:18px; display:flex; gap:20px; align-items:center; flex-wrap:wrap}
.hero-slim .lt{flex:1; min-width:220px}
.hero-slim .eyebrow{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--red);
  font-weight:800; display:block; margin-bottom:6px}
.hero-slim h1{font-size:24px; font-weight:800; margin:0 0 6px; letter-spacing:-.01em; line-height:1.2}
.hero-slim .lead{font-size:13.5px; color:var(--ink-2); margin:0}
.hero-slim .badges{display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 0}
.hero-slim .badge{font-size:11.5px; font-weight:700; padding:5px 11px; border-radius:999px;
  background:var(--cream); border:1px solid var(--line)}
.hero-slim .cta{display:flex; gap:10px; flex:0 0 auto}
.hero-slim .cta .btn{padding:10px 18px; font-size:13px}
@media (max-width:520px){ .hero-slim .cta{flex:1 1 100%} .hero-slim .cta .btn{flex:1} }

/* —— 货架布局：左分类栏 + 右货架排 —— */
.aisle{display:flex; gap:22px; align-items:flex-start}
.aisle-nav{width:178px; flex:0 0 178px; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:14px; position:sticky; top:80px}
.aisle-nav .grp{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3);
  font-weight:800; margin:16px 0 7px; white-space:nowrap}
.aisle-nav .grp:first-child{margin-top:0}
.aisle-nav a{display:flex; justify-content:space-between; align-items:center; gap:8px;
  font-size:13.5px; font-weight:600; padding:6px 10px; border-radius:8px; color:var(--ink-2); white-space:nowrap}
.aisle-nav a:hover{background:var(--cream); color:var(--ink)}
.aisle-nav a.on{background:var(--red-soft); color:var(--red); font-weight:750}
.aisle-nav a .n{font-size:11px; color:var(--ink-3); font-weight:600; flex:0 0 auto}
.aisle-main{flex:1; min-width:0}

/* —— 货架排 —— */
.shelf{margin-bottom:32px}
.shelf-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; gap:12px}
.shelf-head h2{font-size:19px; font-weight:800; margin:0; letter-spacing:-.01em}
.shelf-head .cn{font-size:12px; color:var(--ink-3); margin-left:8px; font-weight:600}
.shelf-head .more{font-size:12.5px; font-weight:750; color:var(--red); white-space:nowrap}
.shelf-head .more:hover{text-decoration:underline}
.shelf-row{display:flex; gap:14px; overflow-x:auto; padding-bottom:8px; scrollbar-width:thin}
.shelf-row>*{flex:0 0 192px}
.shelf-row::-webkit-scrollbar{height:6px}
.shelf-row::-webkit-scrollbar-thumb{background:var(--line); border-radius:999px}
.shelf-empty{background:#fff; border:1px dashed var(--line); border-radius:var(--radius);
  padding:26px; text-align:center; color:var(--ink-3); font-size:13.5px}

/* —— 辣度条（货架卡 / 商品详情页通用） —— */
.heat{display:flex; gap:3px; align-items:center; margin:6px 0 2px}
.heat .dot{width:12px; height:7px; border-radius:3px; background:var(--line)}
.heat .dot.on{background:var(--red)}
.heat .lbl{font-size:11px; font-weight:700; color:var(--ink-3); margin-left:6px}

/* —— 密集商品卡（货架式） —— */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(186px,1fr)); gap:16px}
.card{background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden;
  display:flex; flex-direction:column; position:relative}
.card:hover{border-color:#d6d3d1; box-shadow:var(--shadow)}
.card .thumb{aspect-ratio:1/1; background:#fff; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
.card .thumb .ph{font-size:12px; font-weight:700; color:var(--ink-3); text-align:center; padding:10px}
.card .badge-corner{position:absolute; top:8px; left:8px; z-index:2; font-size:10px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; padding:3px 7px; border-radius:5px; background:var(--ink); color:#fff}
/* Weee 式角标分色（彩底白字）：折扣红 / NEW 亮橙 / BEST SELLER 蓝 / 其他中性深色 */
.card .badge-corner.off{background:#e02b20; border:1px solid #e02b20}
.card .badge-corner.new{background:#ff7a00; border:1px solid #ff7a00}
.card .badge-corner.best{background:#5ba1f7; border:1px solid #5ba1f7}
.card .badge-corner.soft{background:var(--ink); border:1px solid var(--ink)}
.card .body{padding:11px 12px 12px; display:flex; flex-direction:column; flex:1}
.card h3{font-size:14px; margin:0; font-weight:750; line-height:1.35}
.card h3 a:hover{color:var(--red)}
.card .sub2{font-size:11.5px; color:var(--ink-3); margin:2px 0 0}
.card .heat{display:flex; gap:2px; align-items:center; margin-top:6px}
.card .heat .dot{width:11px; height:6px; border-radius:2px; background:var(--line)}
.card .heat .dot.on{background:var(--red)}
.card .heat .lbl{font-size:10.5px; font-weight:700; color:var(--ink-3); margin-left:5px}
.card .price{font-size:16px; font-weight:800; margin-top:8px; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.card .price .from{font-size:11px; font-weight:600; color:var(--ink-3)}
.card .price .old{font-size:11.5px; color:var(--ink-3); text-decoration:line-through; font-weight:600}
.card .price .off{font-size:10.5px; font-weight:800; color:#fff; background:var(--red); border-radius:4px; padding:1px 5px}
.card .stock{font-size:10.5px; font-weight:700; color:var(--ink-3); margin-top:5px}
.card .stock.low{color:var(--gold)}
.card .stock.out{color:var(--red)}
/* 销量（卡片 + 详情页）：小字弱化色，跟在价格后面 */
.card .sold{font-size:10.5px; font-weight:700; color:var(--ink-3); margin-top:4px}
.pdp .sold, .price ~ .sold, #pdp-sold.sold{font-size:12.5px; font-weight:700; color:var(--ink-3); margin-top:4px}
.card .buy{margin-top:auto; padding-top:10px}
.card .buy .btn{width:100%; padding:8px 12px; font-size:13px; border-radius:8px; font-weight:750}
.card .buy .btn.ghost{border-width:1px}

/* —— 筛选药丸 —— */
.pillrow{display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px}
.pillrow button{font-size:13px; font-weight:700; padding:7px 14px; border-radius:999px;
  border:1px solid var(--line); background:#fff; color:var(--ink-2); cursor:pointer; font-family:inherit}
.pillrow button.on{background:var(--ink); border-color:var(--ink); color:#fff}
.pillrow button:hover{border-color:var(--ink-3)}

/* —— 搜索结果/空态 —— */
.searchbar{display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:12px 16px; margin-bottom:18px}
.searchbar .q{font-size:14px}
.searchbar .q b{font-weight:800}
.searchbar .cnt{font-size:12.5px; color:var(--ink-3); margin-left:auto}

/* —— 移动端：分类栏横向滚动 —— */
@media (max-width:900px){
  .aisle{flex-direction:column}
  .aisle-nav{display:flex; gap:16px; width:100%; flex:none; position:static; overflow-x:auto; padding:10px 12px}
  .aisle-nav .grp{margin:0; display:flex; gap:6px; align-items:center}
  .aisle-nav a{padding:5px 9px}
  .shelf-row>*{flex:0 0 168px}
  .topsearch{max-width:none}
  .topbar .container{gap:10px; height:58px}
  .brand small{display:none}
  #account-link{display:none}
}

/* —— 后台保存进度反馈：顶部细进度条 + 按钮转圈 —— */
#save-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .15s}
#save-progress.on{opacity:1}
#save-progress::before{content:'';display:block;height:100%;width:40%;background:#c0392b;border-radius:3px;animation:savebar 1s ease-in-out infinite}
@keyframes savebar{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
.btn .spin{display:inline-block;width:11px;height:11px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;margin-right:6px;vertical-align:-1px;animation:spin .7s linear infinite}
.btn.ghost .spin,.btn:not(.red) .spin{border-color:rgba(0,0,0,.2);border-top-color:#555}
@keyframes spin{to{transform:rotate(360deg)}}
.btn[disabled]{opacity:.6;cursor:wait}

/* —— 移动端底部标签栏（仅 <=900px 显示） —— */
.tabbar{display:none}
@media (max-width:900px){
  .tabbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:900;
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 -2px 12px rgba(0,0,0,.06);
    padding-bottom:env(safe-area-inset-bottom,0);
  }
  .tbitem{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; padding:8px 4px 9px; text-decoration:none; color:var(--ink-3);
    font-size:11px; line-height:1; -webkit-tap-highlight-color:transparent;
  }
  .tbitem .ti{font-size:21px; line-height:1}
  .tbitem.on{color:var(--red)}
  .tbbadge{
    position:absolute; top:3px; right:50%; margin-right:-22px;
    min-width:16px; height:16px; padding:0 4px; border-radius:9px;
    background:var(--red); color:#fff; font-size:10px; font-style:normal; font-weight:800;
    display:flex; align-items:center; justify-content:center;
  }
  /* 让底部内容不被标签栏遮挡 */
  body{padding-bottom:56px}
  /* 手机上货架改为 2 列网格（取代横向滑动条） */
  .aisle-nav{overflow-x:auto}
  .shelf-row{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; overflow:visible; padding:0 2px}
  .shelf-row>*{flex:none}
  .card{margin:0}
  .card .ph{padding:8px}
}

/* —— PDP：移动端加购按钮吸底（仅 <=900px） —— */
@media (max-width:900px){
  .pdp.sticky-buy-on{position:fixed; left:0; right:0; bottom:56px; z-index:880;
    display:flex; gap:10px; padding:10px 12px calc(10px + env(safe-area-inset-bottom,0));
    background:#fff; border-top:1px solid var(--line); box-shadow:0 -2px 12px rgba(0,0,0,.08)}
  .pdp.sticky-buy-on .btn{flex:1}
}

/* —— PDP 加购区：移动端吸底（避让底部标签栏） —— */
@media (max-width:900px){
  .buy-area{
    position:sticky; bottom:0; z-index:870; margin:14px -14px 0 !important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom,0));
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 -3px 14px rgba(0,0,0,.07);
  }
}

/* —— 商品卡：图片右下角快选（Weee 式圆形 +），角标浮于图片上层 —— */
.thumb-wrap{position:relative}
.qbtn{
  position:absolute; bottom:10px; right:10px; z-index:5;
  width:34px; height:34px; border-radius:50%;
  border:none; background:#fff; cursor:pointer;
  font-size:21px; font-weight:800; color:var(--red); line-height:0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 10px rgba(0,0,0,.20);
  -webkit-tap-highlight-color:transparent; transition:transform .12s;
}
.qbtn:hover{transform:scale(1.1); background:#fff5f2}
.qbtn:disabled{opacity:.45; cursor:not-allowed; transform:none; color:var(--ink-3)}
.qpanel{
  border-top:1px dashed var(--line); padding:9px 12px 11px; background:#fffdf9;
  border-radius:0 0 var(--radius) var(--radius);
}
.qpanel .qh{
  display:flex; justify-content:space-between; align-items:center;
  font-size:11.5px; font-weight:800; color:var(--ink-3);
  margin-bottom:7px; text-transform:uppercase; letter-spacing:.05em;
}
.qpanel .qh a{color:var(--red); text-decoration:none; font-weight:750; text-transform:none; letter-spacing:0}
.qrow{
  display:flex; align-items:center; gap:8px; width:100%;
  padding:8px 10px; margin:4px 0; border:1px solid var(--line);
  background:#fff; border-radius:9px; cursor:pointer;
  font:inherit; font-size:13px; text-align:left;
  -webkit-tap-highlight-color:transparent;
}
.qrow:hover{border-color:var(--red)}
.qrow:disabled{opacity:.5; cursor:not-allowed}
.qrow span{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.qrow b{font-weight:800; white-space:nowrap}
.qrow i{font-style:normal; font-weight:900; color:var(--red); font-size:17px; line-height:1}

/* =========================================================================
 * 注册 / 订阅入口
 * 桌面：居中弹窗；移动：底部抽屉（不整屏覆盖，避开 Google 惩罚）
 * ========================================================================= */
.sg-mask{
  position:fixed; inset:0; z-index:9000;
  background:rgba(28,25,23,.46);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.sg-mask[hidden]{display:none}
.sg-box{
  position:relative; width:100%; max-width:420px;
  background:var(--paper); border-radius:var(--radius);
  padding:26px 24px 22px; text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.22);
  animation:sg-in .18s ease-out;
}
@keyframes sg-in{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
.sg-close{
  position:absolute; top:10px; right:12px;
  width:32px; height:32px; border:none; background:transparent;
  font-size:24px; line-height:1; color:var(--ink-3); cursor:pointer;
  border-radius:50%;
}
.sg-close:hover{background:var(--cream); color:var(--ink)}
.sg-gift{
  display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
  width:62px; height:62px; border-radius:50%;
  background:var(--red-soft); border:2px dashed var(--red);
  margin-bottom:12px;
}
.sg-gift-pct{font-size:20px; font-weight:800; color:var(--red); line-height:1}
.sg-gift-sub{font-size:10px; font-weight:800; color:var(--red); letter-spacing:.12em; margin-top:2px}
.sg-title{font-size:20px; font-weight:800; margin:0 0 8px; color:var(--ink)}
.sg-sub{font-size:13.5px; color:var(--ink-3); margin:0 0 16px; line-height:1.55}
.sg-form{display:flex; flex-direction:column; gap:9px}
.sg-input{
  width:100%; padding:12px 14px; font:inherit; font-size:15px;
  border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink);
}
.sg-input:focus{outline:2px solid var(--red); outline-offset:1px; border-color:transparent}
.sg-submit{width:100%}
.sg-msg{font-size:13px; margin:10px 0 0; min-height:17px; color:var(--ink-3)}
.sg-msg.err{color:var(--red)}
.sg-msg.ok{color:var(--green)}
.sg-fine{font-size:11.5px; color:var(--ink-3); margin:8px 0 0}
/* 订阅两步验证：输码阶段的辅助链接 */
.sg-links{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:2px}
.sg-link{background:none; border:0; padding:0; font:inherit; font-size:11.5px; color:var(--ink-3); text-decoration:underline; cursor:pointer}
.sg-link:hover{color:var(--ink-2)}
.sg-link[disabled]{opacity:.55; cursor:default; text-decoration:none}

/* 页脚常驻订阅条 */
.sg-foot{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  background:var(--cream); border:1px solid var(--line);
  border-radius:var(--radius); padding:16px 18px; margin:0 0 22px;
}
.sg-foot-txt{display:flex; flex-direction:column; gap:2px; flex:1 1 220px; min-width:0}
.sg-foot-txt strong{font-size:15px; color:var(--ink)}
.sg-foot-txt span{font-size:13px; color:var(--ink-3)}
.sg-foot-form{display:flex; gap:8px; flex:0 1 340px; min-width:0; flex-wrap:wrap}
.sg-foot-form .sg-links{flex-basis:100%; justify-content:flex-start}
.sg-foot-input{
  flex:1; min-width:0; padding:10px 13px; font:inherit; font-size:14px;
  border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink);
}
.sg-foot-input:focus{outline:2px solid var(--red); outline-offset:1px; border-color:transparent}
.sg-foot-btn{padding:10px 20px; flex:0 0 auto}
.sg-foot-msg{font-size:12.5px; margin:0; width:100%; min-height:16px; color:var(--ink-3)}
.sg-foot-msg.err{color:var(--red)}
.sg-foot-msg.ok{color:var(--green)}

/* 移动端：底部抽屉，不整屏覆盖 */
@media (max-width:900px){
  .sg-mask{align-items:flex-end; padding:0}
  .sg-box{
    max-width:none; border-radius:var(--radius) var(--radius) 0 0;
    padding:22px 20px calc(22px + env(safe-area-inset-bottom));
    animation:sg-up .2s ease-out;
  }
  @keyframes sg-up{from{transform:translateY(100%)}to{transform:none}}
  .sg-foot{flex-direction:column; align-items:stretch; gap:12px; margin:0 0 18px}
  .sg-foot-form{flex:1 1 auto}
  .sg-foot-btn{padding:11px 22px}
}

/* 下单成功后的注册邀请卡 */
.sg-join{
  border:1px solid var(--line); background:var(--paper);
  border-radius:var(--radius); padding:18px; margin-top:16px; text-align:left;
}
.sg-join h4{margin:0 0 6px; font-size:16px; font-weight:800; color:var(--ink)}
.sg-join p{margin:0 0 12px; font-size:13.5px; color:var(--ink-3); line-height:1.55}
.sg-join .sg-join-row{display:flex; gap:9px; flex-wrap:wrap}
.sg-join input{
  flex:1 1 180px; min-width:0; padding:11px 13px; font:inherit; font-size:14px;
  border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink);
}
.sg-join input:focus{outline:2px solid var(--red); outline-offset:1px; border-color:transparent}
.sg-join .sg-join-msg{font-size:12.5px; margin:9px 0 0; min-height:16px; color:var(--ink-3)}
.sg-join .sg-join-msg.err{color:var(--red)}
.sg-join .sg-join-msg.ok{color:var(--green)}

/* —— 左栏分类过多时滚动 —— */
.aisle-nav{max-height:calc(100vh - 100px); overflow-y:auto}
.aisle-nav a.active{background:var(--red-soft); color:var(--red); font-weight:750}

/* —— 头图 3 广告位 —— */
.ad-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.ad-slot{display:block; border-radius:var(--radius); overflow:hidden; background:#fff;
  border:1px solid var(--line); min-height:150px; position:relative; transition:transform .15s ease, box-shadow .15s ease}
.ad-slot:hover{transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,0,0,.10)}
.ad-slot-img{width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:5/2}
.ad-slot-ph{display:flex; align-items:center; justify-content:center; min-height:120px;
  aspect-ratio:5/2; background:var(--cream); color:var(--ink-3); font-size:13px; font-weight:700}
.ad-slot--static{cursor:default}
/* 手机端：三格并排会压成 ~100px 宽看不清，改为横向滑动 */
@media (max-width:600px){
  .ad-grid{grid-template-columns:repeat(3,76%); overflow-x:auto; gap:10px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:4px}
  .ad-grid::-webkit-scrollbar{height:0}
  .ad-slot{scroll-snap-align:start}
}

/* —— 促销轮播（3 张自动切换）—— */
.car{position:relative; border-radius:var(--radius); overflow:hidden; background:#fff; border:1px solid var(--line)}
.car-slide{display:none; text-decoration:none}
.car-slide.on{display:block}
.car-img{width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:8/1}
.car-ph{display:flex; align-items:center; justify-content:center; aspect-ratio:8/1; background:var(--cream); color:var(--ink-3); font-weight:700}
.car-dots{position:absolute; bottom:10px; left:0; right:0; display:flex; gap:8px; justify-content:center}
.car-dot{width:9px; height:9px; border-radius:50%; border:0; background:rgba(255,255,255,.6); cursor:pointer; padding:0}
.car-dot.on{background:var(--red); width:22px; border-radius:999px}
@media (max-width:600px){ .car-img,.car-ph{aspect-ratio:3/1} }

/* —— 货架 Show all 按钮 —— */
.more-btn{font-size:12.5px; font-weight:750; color:var(--red); white-space:nowrap;
  background:transparent; border:0; cursor:pointer; padding:0; font-family:inherit}
.more-btn:hover{text-decoration:underline}
