/* ============================================================
   云卡商城 · 样式模块 10/11 —— 10-blocks.css
   ------------------------------------------------------------
   职责：上传控件、订单/列表行、商品详情选择块与卖点
   涵盖：§29 §30 §31

   ⚠️ 加载顺序即层叠顺序，请勿调整 <link> 的先后。
      本文件由 style.css 按分节边界切出，规则未做任何重排。
   ============================================================ */

/* ============================================================
   29 · 上传
   ============================================================ */
/* 图片选择器容器（UI.imagePicker 的预览槽） */
.picker-box { width: 100%; }

.upload-box {
  padding: var(--sp-6) var(--sp-4);  border: 1.5px dashed var(--line-2);
  border-radius: var(--r-md);
  background: var(--inset);
  color: var(--text-3);
  text-align: center;
  cursor: pointer;
  transition: border-color var(--tr), background var(--tr), color var(--tr);
}
.upload-box:hover { border-color: var(--brand); background: var(--brand-soft); color: var(--text-2); }
.upload-box .ico { margin-bottom: var(--sp-2); font-size: var(--ico-md); line-height: 1; }
.upload-box .t { color: var(--text-2); font-size: var(--fs-sm); font-weight: var(--fw-semi); }
.upload-box .s { margin-top: var(--sp-1); font-size: var(--fs-2xs); }

.qr-img {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
  padding: var(--sp-1h);
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  background: #fff;
}
.qr-placeholder {
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--sp-2);
  aspect-ratio: 1 / 1;
  padding: var(--sp-4);
  border: 1px dashed var(--line-2);
  border-radius: var(--r-md);
  background: var(--inset);
  color: var(--text-3);
}
.qr-placeholder .ico { font-size: var(--ico-md); }
.qr-placeholder .t { font-size: var(--fs-xs); line-height: var(--lh-normal); }

.proof-img {
  width: 100%;
  max-width: 300px;
  max-height: 420px;
  object-fit: contain;
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  background: #fff;
}

/* ============================================================
   30 · 订单 / 列表行
   ============================================================ */
.order-item { padding: var(--sp-4) 0; border-bottom: 1px dashed var(--line); }
.order-item:last-child { border-bottom: 0; }

.list-row {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--line);
}
.list-row:last-child { border-bottom: 0; }

.list-link {
  display: block;
  padding: var(--sp-3) var(--sp-5);
  border-bottom: 1px solid var(--line);
  transition: background var(--tr);
}
.list-link:last-child { border-bottom: 0; }
.list-link:hover { background: var(--surface-2); }

/* ============================================================
   31 · 商品详情页选择块 / 卖点
   ============================================================ */
.option-card {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  background: var(--surface);
  cursor: pointer;
  transition: border-color var(--tr), background var(--tr);
}
.option-card:hover { background: var(--surface-2); border-color: var(--brand-line); }
.option-card.on { background: var(--brand-soft); border-color: var(--brand); }
.option-card .n { color: var(--text); font-size: var(--fs-base); font-weight: var(--fw-semi); }
.option-card .s { color: var(--text-3); font-size: var(--fs-xs); }

.selling-points { display: flex; flex-wrap: wrap; gap: var(--sp-6); }
.selling-points .pt { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
.selling-points .pt .ico { flex: none; font-size: var(--fs-lg); line-height: 1; }
.selling-points .pt .t { color: var(--text); font-size: var(--fs-sm); font-weight: var(--fw-semi); }
.selling-points .pt .s { color: var(--text-3); font-size: var(--fs-xs); }

/* 结算页 / 订单页里的充值信息摘要行 */
.rf-line { color: var(--text-2); line-height: var(--lh-normal); }
.rf-order-info .meta-list { margin-top: 0; }
.rf-order-info .row { padding: var(--sp-1h) 0; }

/* ============================================================
   商品图集上传（后台商品编辑器）
   ============================================================ */
.gal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: var(--sp-2);
}
.gal-item {
  position: relative;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--surface-3);
}
.gal-item.is-main { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-bg); }
.gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gal-tag {
  position: absolute;
  top: 0;
  left: 0;
  padding: 1px 6px;
  border-bottom-right-radius: var(--r-sm);
  background: var(--brand);
  color: var(--text-on);
  font-size: var(--fs-2xs);
}
.gal-ops {
  position: absolute;
  right: 4px;
  bottom: 4px;
  display: flex;
  gap: 3px;
}
.gal-btn {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--r-sm);
  background: rgba(15, 23, 42, .62);
  color: #fff;
  font-size: var(--fs-xs);
  line-height: 1;
  cursor: pointer;
}
.gal-btn:hover { background: rgba(15, 23, 42, .85); }
.gal-btn.is-del:hover { background: var(--danger); }
.gal-add,
.gal-full {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  aspect-ratio: 1 / 1;
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-md);
  background: var(--surface-2);
  color: var(--text-3);
  font-size: var(--fs-xs);
  cursor: pointer;
  transition: border-color var(--tr), color var(--tr), background var(--tr);
}
.gal-add:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-bg); }
.gal-add .ico { font-size: var(--fs-xl); line-height: 1; }
.gal-add .n, .gal-full .n { font-size: var(--fs-2xs); }
.gal-full { cursor: default; border-style: solid; border-color: var(--line); }

/* ============================================================
   商品详情编辑器（后台，图文区块）
   ============================================================ */
.dt-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.dt-row {
  padding: var(--sp-2);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
}
.dt-row .textarea { min-height: 68px; background: var(--surface); }
.dt-row.is-img { display: flex; align-items: center; gap: var(--sp-3); }
.dt-row.is-img img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-2);
  flex: none;
}
.dt-ops { display: flex; gap: var(--sp-1); justify-content: flex-end; margin-top: var(--sp-2); }
.dt-row.is-img .dt-ops { margin-top: 0; margin-left: auto; }
.dt-empty {
  padding: var(--sp-6) var(--sp-4);
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-md);
  background: var(--surface-2);
  color: var(--text-3);
  font-size: var(--fs-sm);
  text-align: center;
}

/* ============================================================
   前台商品图集与图文详情
   ============================================================ */
.goods-gallery {
  display: flex;
  gap: var(--sp-2);
  margin-top: var(--sp-3);
  overflow-x: auto;
  padding-bottom: 2px;
}
.gg-item {
  flex: none;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--surface-3);
  cursor: pointer;
  transition: border-color var(--tr);
}
.gg-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gg-item:hover { border-color: var(--line-strong); }
.gg-item.on { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-bg); }

.detail-body { display: flex; flex-direction: column; gap: var(--sp-4); }
.detail-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
}

/* ============================================================
   32 · 独立内容页与常驻客服入口
   ------------------------------------------------------------
   涵盖：#/track 订单追踪、#/security 账号安全指南、#/legal 法律声明、
        常驻客服悬浮球、商品「购买须知」。

   这一组都是后加的功能页，集中放在文件末尾便于对照。

   ⚠️ 动效约定：这里只用「状态反馈」类过渡（hover / 按压），
      不做装饰性入场。理由见 01-tokens.css 文件头第 4 条。
   ============================================================ */

/* ------------------------------------------------------------
   32.1 页头 / 页脚（订单追踪页是 bare 页面，自带一套极简骨架）
   ------------------------------------------------------------ */
.tk-head {
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.tk-head .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  height: 62px;
}
.tk-foot {
  margin-top: var(--sp-8);
  padding: var(--sp-5) 0;
  border-top: 1px solid var(--line);
  color: var(--text-3);
  font-size: var(--fs-xs);
  text-align: center;
}

/* ------------------------------------------------------------
   32.2 订单追踪页
   ------------------------------------------------------------ */
.tk-page { min-height: 60vh; }
.tk-wrap { max-width: 820px; margin: 0 auto; }

.tk-hero {
  padding: var(--sp-6) 0 var(--sp-5);
  text-align: center;
}
.tk-hero-t { font-size: var(--fs-2xl); font-weight: 800; letter-spacing: -.01em; }
.tk-hero-s { margin-top: 8px; color: var(--text-3); font-size: var(--fs-sm); line-height: 1.8; }

.tk-card { margin-top: var(--sp-6); }

.tk-tip {
  margin-top: var(--sp-5);
  padding: 12px 16px;
  border: 1px dashed var(--line-2);
  border-radius: var(--r-md);
  background: var(--surface-2);
  color: var(--text-3);
  font-size: var(--fs-xs);
  line-height: 1.8;
  text-align: center;
}
.tk-actions {
  display: flex;
  gap: var(--sp-3);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--sp-4);
}

/* ------------------------------------------------------------
   32.3 账号安全指南 / 法律声明（共用一套内容排版）
   ------------------------------------------------------------ */
.sec-hero {
  padding: var(--sp-6) 0 var(--sp-6);
  text-align: center;
}
.sec-hero-ico {
  font-size: 42px;
  line-height: 1;
  margin-bottom: 14px;
}

/* 卡片标题前的方块图标 */
.sec-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-right: 8px;
  border-radius: var(--r-sm);
  background: var(--brand-bg);
  font-size: 15px;
  vertical-align: middle;
}

/* 段落式条目 */
.sec-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sec-li {
  position: relative;
  padding: 10px 0 10px 26px;
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-sm);
  line-height: 1.85;
  color: var(--text-2);
}
.sec-li:last-child { border-bottom: 0; }
.sec-li::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 19px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
}

/* 「风险」这种带小标题的成块说明 */
.sec-block { padding: var(--sp-4) 0; border-bottom: 1px solid var(--line); }
.sec-block:first-child { padding-top: 0; }
.sec-block:last-child { padding-bottom: 0; border-bottom: 0; }
.sec-block-t {
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--text);
  margin-bottom: 8px;
}
.sec-block-d {
  font-size: var(--fs-sm);
  line-height: 1.9;
  color: var(--text-2);
}

/* 引用式小结 */
.sec-quote {
  padding: 12px 16px;
  border-left: 3px solid var(--brand);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  background: var(--surface-2);
  font-size: var(--fs-sm);
  line-height: 1.85;
  color: var(--text-2);
}

/* ---- 法律声明专属 ---- */
.legal-note {
  padding: var(--sp-5);
  border: 1px solid var(--brand-line);
  border-radius: var(--r-lg);
  background: var(--brand-bg);
}
.legal-note-t {
  font-weight: 800;
  font-size: var(--fs-sm);
  color: var(--brand-fg);
  margin-bottom: 8px;
}
.legal-note-b { font-size: var(--fs-sm); line-height: 1.9; color: var(--text-2); }

.legal-p {
  margin: 0 0 12px;
  font-size: var(--fs-sm);
  line-height: 1.95;
  color: var(--text-2);
}
.legal-p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------
   32.4 购买须知（商品详情页 + 结算页）
   ------------------------------------------------------------ */
.buy-notice {
  padding: 14px 16px;
  border: 1px solid var(--warn-line);
  border-radius: var(--r-md);
  background: var(--warn-bg);
}
.bn-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--warn-fg);
  margin-bottom: 8px;
}
.bn-ico { font-size: 15px; }
.buy-notice-collapsible { padding: 0; }
.buy-notice-collapsible > summary.bn-head {
  min-height: 48px;
  padding: 12px 16px;
  margin: 0;
  cursor: pointer;
  list-style: none;
  border-radius: inherit;
}
.buy-notice-collapsible > summary::-webkit-details-marker { display: none; }
.buy-notice-collapsible > summary:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
.buy-notice-collapsible .bn-action { margin-left: auto; font-size: var(--fs-xs); font-weight: 500; }
.buy-notice-collapsible .bn-collapse,
.buy-notice-collapsible[open] .bn-expand { display: none; }
.buy-notice-collapsible[open] .bn-collapse { display: inline; }
.buy-notice-collapsible > .bn-body { padding: 0 16px 14px; }
.checkout-notice > .bn-content { padding: 0 16px 12px; }
.checkout-notice[open] > .bn-head { border-bottom: 1px solid var(--line); border-radius: var(--r-md) var(--r-md) 0 0; }
.checkout-notice .bn-block:first-child { border-top: 0; padding-top: 12px; }
.bn-body {
  font-size: var(--fs-xs);
  line-height: 1.9;
  color: var(--text-2);
}
/* 结算页按商品分组的须知：一组一块，组间用细线隔开 */
.bn-block { padding: 12px 0; border-top: 1px solid var(--line); }
.bn-block:first-of-type { border-top: 0; padding-top: 4px; }
.bn-block-t {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--text);
  margin-bottom: 6px;
}

/* ------------------------------------------------------------
   32.5 常驻客服悬浮球
   ------------------------------------------------------------ */
/* 挂在 body 上、不随路由重建，所以用 fixed 定位。
   底部留出安全距离，窄屏上不会和"回到顶部"之类的东西打架。 */
.support-fab {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 60;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 16px 11px 14px;
  border: 0;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 22px rgba(15, 23, 42, .22);
  transition: transform var(--d-press) var(--e-out), box-shadow var(--tr);
}
.support-fab:hover { box-shadow: 0 8px 26px rgba(15, 23, 42, .3); }
/* 按压反馈：用 scale 而不是位移 —— 位移会让它看起来在"跳" */
.support-fab:active { transform: scale(.96); }
.support-fab .sf-ico { display: inline-flex; }
.support-fab .sf-txt { white-space: nowrap; }

/* 页脚里的行内链接（法律声明） */
.foot-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.foot-link:hover { color: var(--brand); }

/* 空状态里用到的超大图标（追踪页"链接无效"） */
.t-4xl { font-size: 40px; line-height: 1.1; }

/* ============================================================
   33 · 订单详情右侧「状态 + 金额 + 操作」三段式卡片
   ------------------------------------------------------------
   旧版把状态徽章、金额、操作按钮全塞在一张卡里，
   于是已完成订单出现了「孤立徽章 + 应付金额」的自相矛盾组合
   （买家截图反馈）。这里按职责切成三段，每段一个 .od-* 容器。
   命名前缀 od- = order detail，避免和别处的 .st/.amt 撞名。
   ============================================================ */
.od-aside { padding: 0; overflow: hidden; }

/* ① 状态段：徽章 + 一句话说明，横向排列。左侧进度卡片已经描述过流程，
   这里只补"此刻该知道的事"，所以视觉上刻意做得轻。 */
.od-st {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-2);
}
.od-st-s { color: var(--text-2); font-size: var(--fs-sm); }

/* ② 金额段：标题统一叫「订单金额」。「应付金额」在已完成订单上是错的。 */
.od-amt { padding: 18px; text-align: center; border-bottom: 1px solid var(--line); }
.od-amt-k { color: var(--text-3); font-size: var(--fs-xs); margin-bottom: 6px; }

/* 支付区（仅待付款 / 待核对） */
.od-pay { padding: 18px; border-bottom: 1px solid var(--line); }

/* ③ 主操作段 */
.od-acts { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 18px; }
.od-acts:empty { display: none; }
.od-acts .btn { flex: 1 1 auto; justify-content: center; }

/* 次要操作：问题反馈（常规按钮）+ 申请退款（弱化到几乎不显眼）
   申请退款做得低调是刻意的 —— 它不该和「确认收货」抢注意力，
   但买家真需要时又必须找得到。 */
.od-more {
  padding: 12px 18px 14px;
  border-top: 1px solid var(--line);
  text-align: center;
}
.od-more .btn { margin: 0 3px; }
.od-refund { color: var(--text-3); opacity: .75; }
.od-refund:hover { color: var(--danger-fg); opacity: 1; }

/* ============================================================
   34) 规格表表头（商品编辑器 · 参考淘宝 SKU 表）
   ------------------------------------------------------------
   早先规格行是三个无名输入框 + 占位符，商家很容易把「库存上限」
   理解成"限购数量"。加一行表头，每列是什么一眼可见。
   ============================================================ */
.spec-head {
  padding: 0 2px 6px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 8px;
}
.spec-head > span {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--text-3);
  letter-spacing: .02em;
}
/* 只读的卡密库存直接用 .input[disabled] 的既有样式（04-components.css），
   这里不再重复定义 —— 同一视觉写两处，改一处就会漂。 */

/* ============================================================
   35) 卡密区块：账号 / 密码分栏（订单详情页）
   ------------------------------------------------------------
   账号密码类商品（如「土区 ID 出租」）发的是一对凭据。
   以前整串 `user---pass123` 塞进一个 .card-key 里，买家得自己
   在串里找分隔符 —— 这是真实客诉来源。拆成带标签的两行后：
     · 一眼看清哪个是账号、哪个是密码；
     · 每一格仍可单独选中/复制（.card-key 的原有交互不变）。
   ============================================================ */
.ck-item { margin-bottom: var(--sp-3); }
.ck-item:last-child { margin-bottom: 0; }
.ck-row {
  display: flex;
  align-items: stretch;
  gap: var(--sp-2);
  margin-bottom: var(--sp-2);
}
/* 标签列固定宽，让多张卡的账号/密码在纵向上对齐，便于肉眼核对 */
.ck-lb {
  flex: 0 0 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--text-3);
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}
/* 值列吃掉剩余宽度。.card-key 自带边框/底色/等宽字体，
   这里只把它的外边距归零（在外层 .ck-row 里排布） */
.ck-val {
  flex: 1 1 auto;
  min-width: 0;
  margin-bottom: 0;
}

/* ============================================================
   36) 卡密格式编辑器（商品编辑器 · 发货设置页签）
   ------------------------------------------------------------
   为什么要框起来：这一块和上面的「充值信息」「购买须知」是**互斥**的
   （卡密商品填格式，代充商品填字段模板）。给个浅底分组，商家一眼知道
   这一组设置是"怎么解析导入的卡密"，不至于和下面的代充配置混在一起。
   ============================================================ */
.cf-box {
  padding: var(--sp-3) var(--sp-4);
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}
/* 两个 radio 用 .checkbox 包裹时，里面的 .hint 会和文字挤在一起；
   这里统一成"正常字重的小字说明"，跟在标签后面 */
.cf-box .checkbox .hint {
  font-weight: 400;
  margin-left: 4px;
}
/* 示例行用等宽字体，让分隔符的差异（`,` vs `，` vs `---`）肉眼可见 */
#pe-cf-hint code {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  padding: 1px 5px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
}

/* ------------------------------------------------------------
   32.6 客服渠道列表（联系客服弹层内，2026-10-02 新增）
   ------------------------------------------------------------
   改版前是一张纯文字表格，每个渠道长得一样 —— 买家要在脑子里把
   "Telegram" 翻译成"我该点哪个 App"。这里给每个渠道自己的 logo + 品牌色。

   ★ 图形用 CSS mask 而不是 <img>：外部 SVG 里的 currentColor
     **不会**继承页面的 color（`<img>` 是独立文档），
     所以 <img> 方案下 tencent-qq.svg 会渲染成黑企鹅。
     mask 只取"有填充的像素"当形状，颜色由 CSS 给 —— 品牌色可控，
     而且同一份 SVG 能复用到别处而不互相影响。
   ★ 品牌色只在这里出现，不进 01-tokens.css：它是**第三方品牌身份色**，
     不属于本站语义色板（本站的 --brand 蓝跟 WhatsApp 绿没关系）。
   ------------------------------------------------------------ */
/* ★★ 默认值 --sup-m: none 必须声明在**容器**上，不能声明在 .sup-logo 上。
   踩过的坑（2026-10-02 第二次踩，现象是"图标区又是一片空白"）：
     .sup-item[data-ch="whatsapp"] { --sup-m: url(...) }   ← 设在**父元素**
     .sup-logo                    { --sup-m: none }        ← 设在**子元素自身**
     自定义属性走的是 CSS 继承，**自身声明永远压过继承来的值** ——
     于是 ::before 读到的永远是 none，父级那条 url 白写了。
   正解：默认值放容器（继承得下去），具体渠道的值放 .sup-item（覆盖默认），
         .sup-logo 自己**不声明**，只负责用。（这也满足契约校验
         "CSS 里引用到的令牌必须在本文件里有定义"。） */
.sup-list {
  --sup-m: none;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.sup-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface);
  color: inherit;
  text-decoration: none;
  transition: border-color var(--tr), background var(--tr);
}
/* 只有"能跳转"的渠道才是 <a>，也只有它需要 hover 反馈 ——
   给不可点的行加 hover 会让人以为点了会跳走。 */
a.sup-item:hover { border-color: var(--brand-line); background: var(--surface-2); }

.sup-logo {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--r-md);
  background: var(--sup-bg, var(--surface-3));
}
.sup-logo::before {
  content: "";
  width: 22px;
  height: 22px;
  background-color: var(--sup-c, var(--text-2));
  -webkit-mask: var(--sup-m, none) center / contain no-repeat;
  mask: var(--sup-m, none) center / contain no-repeat;
}
/* ★★ --sup-m（图形）必须写在**这里**，不能由 JS 通过内联 style 注入。
   踩过的坑（2026-10-02，图是空的，什么都不显示）：
     内联 style 里写的 `--sup-m:url(assets/img/support/x.svg)` 看着是
     "相对文档"，但自定义属性在 `mask: var(--sup-m)` 里被使用时，
     其中的 url() 是**相对声明 mask 的那条规则的样式表**解析的 ——
     也就是本文件所在的 assets/css/，于是变成了
     `assets/css/assets/img/support/x.svg`（不存在）。
     Chrome 的 getComputedStyle 会如实吐出这个错误路径：
       mask-image: url(".../assets/css/assets/img/support/whatsapp.svg")
     —— 排查时先看这一条，能省半小时。
   所以：**图形路径写在 CSS（相对本文件），颜色也写在 CSS**。
   ⚠️ 加渠道要改两个文件：JS 的 SUPPORT_CHANNELS（key/名称/字段/链接规则）
      + 这里的 [data-ch="…"] 规则。两处都有交叉注释互相指认。
   ★ 默认值 --sup-m: none（见 .sup-logo）保证没有图形的渠道只是留空，
     不会退化成"一个纯色方块"。 */
.sup-item[data-ch="whatsapp"] { --sup-c: #25d366; --sup-bg: rgba(37, 211, 102, .13); --sup-m: url(../img/support/whatsapp.svg); }
.sup-item[data-ch="telegram"] { --sup-c: #229ed9; --sup-bg: rgba(34, 158, 217, .13); --sup-m: url(../img/support/telegram.svg); }
.sup-item[data-ch="wechat"]   { --sup-c: #07c160; --sup-bg: rgba(7, 193, 96, .13);   --sup-m: url(../img/support/wechat.svg); }
.sup-item[data-ch="qq"]       { --sup-c: #12b7f5; --sup-bg: rgba(18, 183, 245, .13); --sup-m: url(../img/brands/tencent-qq.svg); }
.sup-item[data-ch="online"]   { --sup-c: var(--brand); --sup-bg: var(--brand-bg);    --sup-m: url(../img/support/chat.svg); }

.sup-main { flex: 1; min-width: 0; }
.sup-main b {
  display: block;
  color: var(--text);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
}
.sup-main i {
  display: block;
  margin-top: 2px;
  color: var(--text-3);
  font-size: var(--fs-xs);
  font-style: normal;
  /* 邮箱型账号（如 WhatsApp 用邮箱注册的）会很长，允许换行别撑破卡片 */
  word-break: break-all;
}
.sup-acts { flex: none; display: flex; align-items: center; gap: var(--sp-2); }
.sup-go { color: var(--brand); font-size: var(--fs-xs); font-weight: var(--fw-semi); }
.sup-copy {
  padding: 4px 10px;
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  background: var(--surface);
  color: var(--text-2);
  font-size: var(--fs-2xs);
  font-family: inherit;
  cursor: pointer;
  transition: border-color var(--tr), color var(--tr);
}
.sup-copy:hover { border-color: var(--brand-line); color: var(--brand); }
.sup-foot { margin-top: var(--sp-3); }
.sup-empty { padding: var(--sp-4) 0; text-align: center; }

/* 暗色：浅底换成"同色相但更暗"的底，否则 rgba 浅色在深色卡上会发灰白。
   ★ 这是**结构差异**不只是取值（同 .pogo-rf 那一节的规矩）：
     亮色是"极浅底 + 深饱和图形"，暗色要反过来变成"深底 + 亮图形"。 */
[data-theme="dark"] .sup-item { background: var(--surface-2); }
[data-theme="dark"] a.sup-item:hover { background: var(--surface-3); }
[data-theme="dark"] .sup-logo { background: rgba(255, 255, 255, .07); }
[data-theme="dark"] .sup-item[data-ch="whatsapp"] { --sup-c: #4ade80; }
[data-theme="dark"] .sup-item[data-ch="telegram"] { --sup-c: #56b8e6; }
[data-theme="dark"] .sup-item[data-ch="wechat"]   { --sup-c: #34d97b; }
[data-theme="dark"] .sup-item[data-ch="qq"]       { --sup-c: #4ec9f7; }

/* ------------------------------------------------------------
   32.7 悬浮球要避开"钉在底部的东西"
   ------------------------------------------------------------
   踩过的真实表现（用户截图报的）：p13 的吸底价格条是 position:fixed 钉在
   视口底部，悬浮球也钉在右下角 —— 悬浮球 z-index(60) 比吸底条(50) 高，
   于是它**正好压在「立即购买」按钮上**，那个按钮点不到。

   ★ 用 :has() 做条件位移（渐进增强）：不支持 :has() 的浏览器只是照旧
     重叠，功能不受影响（那两个按钮在吸底条左侧，仍然点得到）。
   ★ 数值不是拍脑袋：吸底条宽屏约 72px（含内边距），悬浮球自身离底 22px，
     所以需要 72+22 ≈ 94px；窄屏吸底条折成两行约 108px。
   ------------------------------------------------------------ */
body:has(.pogo-dock) .support-fab { bottom: 94px; }
/* 本地存储警告条也会钉在底部，它出现时吸底条已被抬高 76px（见 07-product.css） */
body:has(.storage-warn) .support-fab { bottom: 94px; }
body:has(.storage-warn):has(.pogo-dock) .support-fab { bottom: 170px; }
@media (max-width: 640px) {
  body:has(.pogo-dock) .support-fab { bottom: 124px; }
  body:has(.storage-warn) .support-fab { bottom: 96px; }
  body:has(.storage-warn):has(.pogo-dock) .support-fab { bottom: 200px; }
}

/* 购物车将数量操作与商品信息分区，避免窄屏挤压标题。 */
.cart-title { display: flex; align-items: center; gap: var(--sp-3); }
.cart-title .ico-svg { color: var(--brand-fg); }
.cart-row { display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-5) 0; border-bottom: 1px solid var(--line); }
.cart-row:last-child { border-bottom: 0; }
.cart-row > .thumb { flex: none; }
.cart-row .rf-line { overflow-wrap: anywhere; }
.cart-actions { display: flex; align-items: center; gap: var(--sp-3); flex: none; }

/* Display-icon containers share size and alignment without changing brand art. */
.upload-box .ico, .bn-ico, .sec-ico, .sec-hero-ico, .pogo-svc-i { display: inline-flex; align-items: center; justify-content: center; flex: none; }
.upload-box .ico { color: var(--brand-fg); }
.sec-hero-ico > .ui-icon { width: 32px; height: 32px; }
.bn-head { gap: var(--sp-2); }
.demo-tip > .ui-icon:first-child { color: var(--brand-fg); margin-right: var(--sp-1); }
.demo-tip.danger > .ui-icon:first-child { color: var(--danger-fg); }
.meta-list .k > .ui-icon { margin-right: var(--sp-1); color: var(--brand-fg); }

/* Order cards have a neutral identity row, product rows and a separate action footer. */
.order-card { border-radius: var(--r-xl); }
.order-card .card-head { padding: var(--sp-4) var(--sp-6); background: var(--surface-2); }
.order-card .card-head .mono { overflow-wrap: anywhere; }
.order-card .card-body { padding: 0; }
.order-card .list-body { padding: var(--sp-5) var(--sp-6); margin: 0; border-bottom: 1px solid var(--line); }
.order-card .list-body > .thumb { flex: none; border-radius: var(--r-md); }
.order-card .list-body .fw-6 { color: var(--text); line-height: var(--lh-normal); }
.order-card .list-body .dim { margin-top: var(--sp-1h); }
.order-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-4) var(--sp-6); background: var(--surface-2); }
.order-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.order-total { margin-right: var(--sp-2); white-space: nowrap; }
.od-amt { padding: var(--sp-6); background: var(--surface); }
.od-pay { padding: var(--sp-5); }
.od-acts { padding: var(--sp-5); gap: var(--sp-3); }
.od-more { padding: var(--sp-4) var(--sp-5); background: var(--surface-2); }
.od-refund { opacity: 1; }
/* Guidance panels keep their semantic colors with more comfortable reading space. */
.demo-tip { padding: var(--sp-4); border-radius: var(--r-md); line-height: var(--lh-relaxed); }

/* Expandable support shortcuts and an anchored contact popover. */
.support-fab.sf-widget { display:block;padding:0;background:transparent;color:var(--text);border-radius:0;box-shadow:none;cursor:default; }
.support-fab.sf-widget:hover { box-shadow:none; }
.support-fab.sf-widget:active { transform:none; }
.sf-toggle { display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 18px;border:1px solid #ffffff30;border-radius:28px;background:var(--brand);color:white;box-shadow:0 6px 22px #16324c26;font:600 14px/1.4 var(--font-sans);cursor:pointer;transition:transform .2s,box-shadow .2s; }
.sf-toggle:hover { transform:translateY(-2px);box-shadow:0 8px 26px #16324c38; }
.sf-widget [hidden] { display:none!important; }
.sf-choices { position:absolute;right:0;bottom:66px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-height:calc(100dvh - 230px);overflow-y:auto;overflow-x:hidden;padding:8px 4px 8px 14px;width:190px; }
.sf-channel.sup-item { --sf-order:0;display:flex;align-items:center;justify-content:flex-end;gap:12px;width:100%;min-height:48px;padding:0;border:0;border-radius:0;background:none;cursor:pointer;animation:sf-channel-enter .28s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--sf-order) * 40ms); }
.sf-channel .sup-logo { width:48px;height:48px;border-radius:50%;background:var(--surface);box-shadow:0 3px 14px #1933471a;border:1px solid var(--line);transition:transform .2s,background .2s; }
.sf-channel .sup-logo::before { width:26px;height:26px; }
.sf-channel:hover .sup-logo { background:var(--sup-bg);transform:scale(1.08); }
.sf-channel-label { background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:500;color:var(--text-2);box-shadow:0 2px 10px #1933470a;white-space:nowrap; }
.sf-contact { position:absolute;bottom:66px;right:0;width:min(336px,calc(100vw - 36px));padding:16px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 55px #182b4529;max-height:calc(100dvh - 230px);overflow-y:auto;animation:sf-channel-enter .2s ease-out; }
.sf-contact-nav { display:flex;align-items:center;justify-content:space-between;margin:-8px -6px 8px; }
.sf-back,.sf-dismiss { display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px;min-width:44px;border:0;border-radius:8px;background:transparent;color:var(--text-2);font:inherit;font-size:12px;cursor:pointer; }
.sf-back:hover,.sf-dismiss:hover { background:var(--surface-2); }
.sf-contact-brand.sup-item { display:flex;gap:12px;padding:0;border:0;background:none;margin:0 0 16px; }
.sf-contact-brand h3 { font-size:17px;margin:0 0 4px;line-height:1.4; }
.sf-contact-brand p { margin:0;font-size:12px;color:var(--text-3);line-height:1.5; }
.sf-contact-value { padding:14px;background:var(--surface-2);border-radius:10px;font-size:15px;line-height:1.6;overflow-wrap:anywhere;user-select:text; }
.sf-contact-actions { display:flex;gap:8px;margin-top:12px; }
.sf-contact-actions .btn { flex:1;min-height:44px;font-size:12px;padding-inline:8px; }
.sf-contact-hours { margin-top:16px;padding-top:12px;border-top:1px solid var(--line);color:var(--text-3);font-size:11px;line-height:1.6; }
.sf-contact-empty { background:var(--surface-2);border-radius:10px;padding:14px;font-size:13px;line-height:1.8; }
.sf-widget button:focus-visible,.sf-widget a:focus-visible { outline:2px solid var(--brand);outline-offset:2px; }
@keyframes sf-channel-enter { from { opacity:0;transform:translateY(12px) scale(.94); } to { opacity:1;transform:translateY(0) scale(1); } }
@media(max-width:640px) { .support-fab.sf-widget { right:16px; } .sf-choices { gap:8px; } }
@media(prefers-reduced-motion:reduce) { .sf-widget * { animation:none!important;transition:none!important; } }

/* Operations: calm surfaces, readable records, explicit actions. */
.ox-workspace{min-width:0;max-width:1440px;margin:auto;color:var(--text)}
.ox-page-intro{margin:0 0 26px;padding:6px 0}.ox-page-intro h1{font-size:26px;font-weight:700;letter-spacing:-.6px;margin:6px 0 10px}.ox-page-intro p,.ox-muted{font-size:13px;line-height:1.8;color:var(--text-3)}
.ox-eyebrow{font-size:11px;letter-spacing:2px;color:var(--text-3)}
.ox-panel,.ox-case,.ox-favorite,.ox-coupon{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:24px;margin-bottom:18px}
.ox-panel>h3,.ox-case h3,.ox-favorite h3,.ox-coupon h3{font-size:16px;font-weight:650;margin:0 0 12px;line-height:1.5}
.ox-panel p,.ox-case p,.ox-policy p{font-size:14px;line-height:1.9}.ox-panel>h4{margin:22px 0 12px}
.ox-meta,.ox-event time{font-size:12px;color:var(--text-3);line-height:1.8}.ox-case-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.ox-case-head h3{margin:4px 0}.ox-case-head .badge{flex-shrink:0}
.ox-timeline{border-left:1px solid var(--line);padding-left:18px;margin:22px 0}.ox-timeline>div{position:relative;padding:0 0 16px}.ox-timeline>div:before{content:'';position:absolute;left:-22px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--text-3)}.ox-timeline>div:last-child{padding-bottom:0}.ox-timeline p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.ox-timeline img{max-width:180px;max-height:150px;object-fit:contain;border-radius:8px}
.ox-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}.ox-primary{background:#202630!important;border-color:#202630!important;color:#fff!important}.ox-primary:hover{background:#363e49!important}
.ox-form{display:grid;gap:16px}.ox-form .field{margin:0}.ox-form label{font-size:13px;font-weight:550}.ox-form small{display:block;font-size:12px;color:var(--text-3);margin-top:6px;line-height:1.6}.ox-form .input,.ox-form .select{height:44px}.ox-form input[type=number]{min-width:0}.ox-form textarea{min-height:110px}.ox-form-grid,.ox-coupon-grid,.ox-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ox-case-grid{align-items:start}.ox-modal{width:620px;max-width:calc(100vw - 48px)}
.ox-error{color:#b43e37;font-size:13px;line-height:1.6}.ox-empty{padding:36px;text-align:center;color:var(--text-3);border:1px dashed var(--line);border-radius:14px}.ox-table{overflow-x:auto}.ox-table .tbl th{font-size:12px;font-weight:500;white-space:nowrap}.ox-table .tbl td{font-size:13px;padding:16px 12px}.ox-table .tbl small{display:block;color:var(--text-3);font-size:11px;max-width:240px;line-height:1.8}.ox-table .btn{margin:3px;white-space:nowrap}.ox-table a{color:var(--text)}
.ox-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.ox-filters>.field{flex:1;min-width:150px;margin:0}.ox-filters label{font-size:12px}.ox-summary{display:flex;gap:32px;border:1px solid var(--line);background:var(--surface-2);padding:20px;border-radius:12px;margin:20px 0}.ox-summary span{font-size:12px;color:var(--text-3)}.ox-summary b{display:block;font-size:25px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;margin-top:8px}
.ox-coupon{margin:0;position:relative;overflow:hidden}.ox-coupon:after{content:'';position:absolute;right:-32px;top:-28px;width:115px;height:115px;border:18px solid var(--surface-2);border-radius:50%;pointer-events:none}.ox-coupon strong{display:block;font-size:32px;font-weight:600;letter-spacing:-1px;margin:10px 0 18px}.ox-coupon>p{font-size:13px;line-height:1.8;margin:8px 0}.ox-coupon .btn{margin-top:8px}
.ox-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ox-service-grid>div{padding:18px;background:var(--surface-2);border-radius:10px}.ox-service-grid span{font-size:12px;color:var(--text-3);display:block;margin-bottom:8px}.ox-service-grid b{font-size:15px;font-weight:600}
.ox-device,.ox-event{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.ox-device b{font-weight:500;font-size:13px;overflow-wrap:anywhere}.ox-device>div{min-width:0}.ox-device .btn{flex-shrink:0}.ox-secret{display:block;background:var(--surface-2);padding:18px;font-size:18px;letter-spacing:2px;overflow-wrap:anywhere;border-radius:10px}
.ox-favorite{display:flex;align-items:center;gap:20px}.ox-favorite>div:nth-child(2){flex:1}.ox-favorite-art{width:72px;height:72px;display:grid;place-items:center;border-radius:14px;background:var(--surface-2);overflow:hidden}.ox-favorite-art img{width:100%;height:100%;object-fit:contain}.ox-inline-form{display:flex;gap:12px}.ox-inline-form .input{flex:1}.ox-inline-form .btn{flex-shrink:0}.ox-event.is-unread h3:before{content:'';display:inline-block;width:6px;height:6px;background:#c89232;border-radius:50%;margin-right:8px}.ox-event h3{margin-bottom:6px;font-size:15px}.ox-event p{margin:4px 0;color:var(--text-3)}.ox-policy{max-width:960px}.ox-save-product{margin:12px 0}.ox-panel .checkbox{font-size:13px}
.ox-workspace :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--brand);outline-offset:3px}
/* After-sales workbench: always show the management controls, including empty data. */
.ops-admin .as-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.ops-admin .as-heading h1{font-size:22px;margin:0 0 6px;font-weight:650;line-height:1.4}
.ops-admin .as-heading p{font-size:13px;color:var(--text-3);margin:0;line-height:1.7}
.ops-admin .as-heading .btn{flex-shrink:0}
.ops-admin .as-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
.ops-admin .as-metric{display:flex;flex-direction:column;gap:8px;padding:20px 24px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text-2)}
.ops-admin .as-metric:hover{border-color:var(--brand)}
.ops-admin .as-metric>span{font-size:13px}.ops-admin .as-metric strong{font-size:30px;line-height:1.2;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.ops-admin .as-metric small{font-size:12px;color:var(--text-3)}
.ops-admin .as-panel{border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow:hidden}
.ops-admin .as-tabs{display:flex;gap:26px;padding:0 24px;border-bottom:1px solid var(--line);overflow-x:auto}
.ops-admin .as-tab{display:flex;align-items:center;gap:8px;padding:17px 0 14px;white-space:nowrap;border-bottom:3px solid transparent;color:var(--text-2);font-size:13px}
.ops-admin .as-tab span{padding:1px 6px;border-radius:4px;background:var(--surface-2);font-size:11px;color:var(--text-3)}
.ops-admin .as-tab.on{color:var(--brand);border-color:var(--brand);font-weight:600}.ops-admin .as-tab.on span{color:var(--brand);background:var(--brand-soft)}
.ops-admin .as-search{padding:20px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}
.ops-admin .as-search label{font-size:13px;white-space:nowrap}.ops-admin .as-search .input{max-width:340px;min-width:0;flex:1}.ops-admin .as-result{margin-left:auto;font-size:12px;color:var(--text-3);white-space:nowrap}
.ops-admin .as-results{padding:24px}.ops-admin .as-empty{min-height:265px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 12px}
.ops-admin .as-empty>svg{color:var(--text-3);width:36px;height:36px;margin-bottom:16px}.ops-admin .as-empty h3{margin:0 0 8px;font-size:16px;font-weight:600}.ops-admin .as-empty p{color:var(--text-3);font-size:13px;line-height:1.8;margin:0 0 20px;max-width:440px}
.ops-admin .as-guide{display:flex;gap:12px 24px;align-items:center;flex-wrap:wrap;padding:20px 0;color:var(--text-3);font-size:12px}.ops-admin .as-guide strong{color:var(--text-2);font-weight:600}.ops-admin .as-guide p{flex-basis:100%;margin:0;line-height:1.7}
.ops-admin .as-results .ox-case{border-radius:6px;margin:0;padding:20px}.ops-admin .ox-workspace{--muted:var(--text-3)}
@media(max-width:720px){.ops-admin .as-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ops-admin .as-metric{padding:16px}.ops-admin .as-heading{align-items:flex-start}.ops-admin .as-tabs{padding:0 16px;gap:20px}.ops-admin .as-search{flex-wrap:wrap;padding:16px;gap:10px}.ops-admin .as-search label{flex-basis:100%}.ops-admin .as-search .input{max-width:none}.ops-admin .as-result{flex-basis:100%;margin:0}.ops-admin .as-results{padding:16px}.ox-case-grid,.ox-form-grid,.ox-coupon-grid{grid-template-columns:1fr}.ops-admin .as-empty{min-height:240px}.ops-admin .as-guide{gap:12px 16px}}
.growth-privacy-button{position:fixed;bottom:8px;left:12px;z-index:120;border:1px solid var(--line);background:var(--surface);color:var(--text-3);font-size:11px;min-height:30px;padding:4px 10px;border-radius:6px;cursor:pointer}
.growth-preferences{position:fixed;bottom:48px;left:20px;width:390px;max-width:calc(100vw - 40px);z-index:251;padding:20px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 32px #10203026;font-size:13px;line-height:1.7}
.growth-preferences p{color:var(--text-2);margin:8px 0 14px}.growth-pref-actions{display:flex;gap:8px}.growth-preferences button{border:1px solid var(--line);border-radius:4px;background:var(--surface-2);color:var(--text);min-height:40px;padding:8px 12px;cursor:pointer}.growth-preferences [data-consent=yes]{background:var(--brand);color:white}.growth-preferences label{display:flex;gap:8px;align-items:flex-start;margin:14px 0 8px}.growth-preferences input{margin-top:5px}.growth-preferences button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

.ox-favorite-grid{display:grid;gap:18px}.ox-favorite-grid>.ox-favorite{margin:0}
/* Order detail: task-first layout, shared content and existing action handlers. */
.od-page { --od-muted: #718096; font-family: "PingFang SC","Microsoft YaHei","Segoe UI",sans-serif; font-size:14px; line-height:1.65; }
.od-page-title { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 22px; }
.od-page-title h1 { font-size:26px;font-weight:650;line-height:1.35;margin:0;letter-spacing:-.02em; }
.od-page-title>span { font-size:12px;color:var(--text-3);overflow-wrap:anywhere; }
.od-layout { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start; }
.od-progress { grid-column:1/-1;min-width:0; }
.od-progress>div:first-child h3 { font-size:14px;font-weight:500;color:var(--text-2); }
.od-page .od-main,.od-page .od-sidebar { display:grid;gap:20px;min-width:0;padding:0; }
.od-page .od-main { grid-template-areas:"product" "information" "proof"; }
.od-products { grid-area:product; }.od-information { grid-area:information; }.od-proof { grid-area:proof; }
.od-page .card { border-radius:16px;box-shadow:none; }
.od-page .card-head { padding:19px 24px;border-bottom:1px solid var(--line); }
.od-page .card-head h2 { font-size:17px;font-weight:600;line-height:1.5;margin:0; }
.od-page .card-body { padding:22px 24px; }
.od-page .card-body.tight { padding:0 24px; }
.od-page .order-item { padding:24px 0; }
.od-page .order-item+.order-item { border-top:1px solid var(--line); }
.od-page .od-product-heading { align-items:center;gap:16px; }
.od-product-heading .fw-7 { font-size:16px;font-weight:600;line-height:1.6; }
.od-product-heading>.price { font-size:17px;font-weight:600;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums; }
.od-product-heading .thumb { width:64px;height:64px;flex:0 0 64px;border-radius:12px; }
.od-page .badge { font-size:12px;font-weight:500; }
.od-page .rf-order-info { padding:18px 20px;margin-top:20px;border-radius:10px;background:var(--surface-2); }
.od-page .rf-order-info>.fw-7 { font-size:13px;font-weight:600; }
.od-page .meta-list { gap:12px; }
.od-page .meta-list .row { font-size:14px;gap:16px;line-height:1.75; }
.od-page .meta-list .row .k { width:84px;color:var(--text-3);font-size:13px; }
.od-page .meta-list .row .v { color:var(--text-2); }
.od-page .mono { font-family:inherit;font-variant-numeric:tabular-nums; }
.od-page .od-amt { display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px 24px;text-align:left; }
.od-page .od-amt-k { font-size:13px;color:var(--text-2);margin:0; }
.od-page .od-amt>.price { font-family:"Segoe UI","PingFang SC",sans-serif;font-size:30px;font-weight:650;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.3; }
.od-page .od-st { padding:14px 24px;gap:8px;background:var(--surface); }
.od-page .od-st-s { font-size:12px;line-height:1.7; }
.od-page .od-pay,.od-page .od-acts,.od-page .od-more { padding:18px 24px; }
.od-page .od-acts { gap:10px; }
.od-page .od-more { display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;background:var(--surface-2); }
.od-page .od-more .btn { margin:0;font-size:12px;min-height:36px;font-weight:500; }
.od-page .btn { font-size:13px;font-weight:500; }
.od-page .od-acts .btn,.od-page #btn-pay-balance { min-height:44px;font-weight:600; }
.od-page .od-help .meta-list .row { font-size:13px; }
.od-page .od-help .btn { min-height:40px; }
.od-progress .op-body { display:flex;flex-direction:column;align-items:stretch;gap:16px; }
.od-progress .op-hero-t { font-size:22px; }
.od-progress .op-queue { padding:14px 18px; }
.od-progress .op-q-t { font-size:14px;font-weight:600; }
.od-progress .op-q-s { font-size:13px; }
.od-progress .vf-order-card { margin:0; }
.od-progress .vf-order-card strong { font-size:16px;font-weight:600; }
.od-progress .vf-order-card p { font-size:13px;line-height:1.7; }
@media(max-width:900px) {
 .od-layout { grid-template-columns:minmax(0,1fr);grid-template-areas:"progress" "payment" "product" "information" "proof" "help";gap:16px; }
 .od-page .od-layout>.od-main,.od-page .od-layout>.od-sidebar { display:contents; }
 .od-progress { grid-area:progress; }.od-payment { grid-area:payment; }.od-help { grid-area:help; }
 .od-needs-payment .od-layout { grid-template-areas:"payment" "progress" "product" "information" "proof" "help"; }
 .od-page-title { margin-bottom:18px; }
 .od-page-title h1 { font-size:24px; }
 .od-page .od-pay { display:flex;flex-direction:column;align-items:center; }
 .od-page .od-pay>.btn,.od-page .od-pay>.demo-tip { width:100%; }
 .od-page .od-pay>#btn-pay-balance { order:-2;margin-top:0; }
 .od-page .od-pay>.t-xs { order:-1;margin-bottom:16px; }
}
@media(max-width:560px) {
 .od-page-title { display:block; }.od-page-title>span { display:block;margin-top:5px;font-size:12px; }
 .od-page .card-head { padding:16px 18px; }.od-page .card-head h2 { font-size:16px; }
 .od-page .card-body { padding:18px; }.od-page .card-body.tight { padding:0 18px; }
 .od-page .order-item { padding:18px 0; }
 .od-product-heading { display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px!important; }
 .od-product-heading .thumb { width:52px;height:52px; }
 .od-product-heading>.price { grid-column:2;font-size:16px; }
 .od-product-heading .fw-7 { font-size:15px; }
 .od-page .rf-order-info { padding:14px;margin-top:16px; }
 .od-page .meta-list .row { font-size:14px;gap:12px; }
 .od-page .meta-list .row .k { width:72px;font-size:12px; }
 .od-page .od-amt,.od-page .od-st,.od-page .od-pay,.od-page .od-acts,.od-page .od-more { padding:16px 18px; }
 .od-page .od-amt>.price { font-size:28px; }
 .od-page .od-more .btn { flex:1 1 calc(50% - 8px);min-height:40px; }
 .od-progress .op-body { padding:18px 12px; }
}
/* Compact desktop order progress: summary above, queue and task share a row. */
@media(min-width:901px){
 .od-progress .op-card.op-cloud .op-hero{min-height:76px;padding:15px 22px}
 .od-progress .op-card.op-cloud .op-hero-t{font-size:19px;line-height:1.4}
 .od-progress .op-card.op-cloud .op-hero-s{margin-top:4px;font-size:12px}
 .od-progress .op-cloud-art{width:222px;bottom:-3px}
 .od-progress .op-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px 20px;gap:10px 14px}
 .od-progress .op-card.op-cloud .op-steps{grid-column:1/-1;min-height:62px;padding:3px 0 2px}
 .od-progress .op-card.op-cloud .op-lb{margin-top:7px}
 .od-progress .op-queue{grid-column:auto;padding:10px 14px}
 .od-progress .vf-order-card{grid-column:auto;padding:10px 14px}
 .od-progress .vf-order-card strong{font-size:14px}
 .od-progress .vf-order-card p{font-size:12px;margin-top:3px}
 .od-progress .vf-order-card .btn{min-height:36px;padding:7px 12px;font-size:12px}
 .od-progress .op-notice{grid-column:1/-1}
}
/* Approved order task preview: product, details, payment and help panels. */
.od-page .od-products>.card-head,.od-page .od-information>.card-head { border-bottom:0;padding:25px 28px 18px; }
.od-page .od-section-note { color:var(--text-3);font-size:12px;font-weight:400; }
.od-page .od-products .card-body.tight { padding:0 28px; }
.od-page .od-products .order-item { padding:6px 0 25px; }
.od-page .od-products .order-item+.order-item { padding-top:25px; }
.od-page .od-product-heading { gap:18px; }
.od-page .od-product-heading .thumb { width:88px;height:88px;flex:0 0 88px;background:var(--surface-2);border-radius:14px;display:grid;place-items:center; }
.od-page .od-product-heading .thumb img { width:76px;height:76px;object-fit:contain; }
.od-page .od-product-heading .fw-7 { font-size:18px;line-height:1.5; }
.od-page .od-product-heading .badge { background:var(--surface-2);border-color:transparent;color:var(--text-2);padding:3px 7px; }
.od-line-total { text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums; }
.od-line-total b { display:block;font:650 20px/1.5 "Segoe UI",sans-serif; }
.od-line-total small { display:block;color:var(--text-3);font-size:12px;margin-top:3px; }
.od-page .rf-order-info { margin-top:22px;padding:20px 0 0;border-top:1px solid var(--line);border-radius:0;background:transparent; }
.od-account-title { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px; }
.od-account-title b { font-size:14px;font-weight:600; }
.od-account-title small { display:flex;align-items:center;gap:5px;color:var(--text-3);font-size:11px; }
.od-account-title svg { width:13px;height:13px; }
.od-page .rf-order-info .rf-info { display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;padding:17px 20px;background:var(--surface-2);border-radius:9px; }
.od-page .rf-info .row { display:block; }
.od-page .rf-info .row .k { width:auto;margin-bottom:4px; }
.od-page .rf-info .row .v { font-size:14px;overflow-wrap:anywhere; }
.od-page .rf-lock { display:block;margin:3px 0 0;font-size:11px; }
.od-delivery-note { display:flex;align-items:flex-start;gap:10px;margin-top:20px; }
.od-delivery-note>svg { width:18px;height:18px;margin-top:3px;color:var(--text-3);flex:none; }
.od-delivery-note b { color:var(--text-2);font-size:13px;font-weight:600; }
.od-delivery-note p { margin:4px 0 0;color:var(--text-3);font-size:13px;line-height:1.8; }
.od-page .od-information>.card-body { padding:4px 28px 24px; }
.od-page .od-detail-grid { grid-template-columns:1fr 1fr;gap:18px 24px; }
.od-page .od-detail-grid .row { display:block; }
.od-page .od-detail-grid .row .k { width:auto;font-size:12px;margin-bottom:4px; }
.od-page .od-detail-grid .row .v { font-size:14px; }
.od-note { border-top:1px solid var(--line);padding-top:19px;margin-top:22px; }
.od-note h3 { font-size:14px;font-weight:600;margin:0; }
.od-note p { color:var(--text-2);font-size:13px;line-height:1.85;margin:7px 0 0;overflow-wrap:anywhere; }
.od-proof-image { max-width:240px;margin-top:12px; }
.od-proof-image img { width:100%;max-height:320px;object-fit:contain;border:1px solid var(--line);background:white;border-radius:8px; }
.od-history { margin-top:20px;border-top:1px solid var(--line); }
.od-history summary { padding:16px 0 0;color:var(--text-2);font-size:13px;cursor:pointer; }
.od-history ol { list-style:none;padding:0;margin:20px 0 0; }
.od-history li { display:grid;grid-template-columns:144px 1fr;gap:15px;position:relative;padding:0 0 18px 18px;border-left:1px solid var(--line);font-size:13px;line-height:1.7; }
.od-history li:before { content:"";position:absolute;left:-4px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--text-3); }
.od-history li:last-child { padding-bottom:0;border-color:transparent; }
.od-history time { color:var(--text-3);font-size:12px; }
.od-page .od-payment>.card-head { padding:24px 24px 10px;border:0; }
.od-page .od-payment>.card-head h2 { font-size:16px; }
.od-page .od-st { border:0;padding:0 24px 10px; }
.od-totals { margin:0;padding:12px 24px 18px;display:grid;gap:9px; }
.od-totals>div { display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px; }
.od-totals dt { color:var(--text-3); }.od-totals dd { margin:0;color:var(--text-2);font-variant-numeric:tabular-nums; }
.od-page .od-amt { margin:0 24px;padding:16px 0 0;border-top:1px solid var(--line);border-bottom:0; }
.od-page .od-payment-method { margin:7px 24px 18px;color:var(--text-3);font-size:11px;line-height:1.7;text-align:right; }
.od-page .od-more { background:transparent;display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin:0 24px;padding:14px 0 18px; }
.od-page .od-more .btn { background:transparent;border:0;padding:7px 0;min-height:36px;text-align:left;justify-content:flex-start;color:var(--text-2);box-shadow:none; }
.od-page .od-more .btn:hover { color:var(--brand);background:var(--surface-2); }
.od-page .od-more p,.od-page .od-more>div { grid-column:1/-1; }
.od-page .od-help>.card-head { padding:24px 24px 0;border:0; }
.od-help h2 { display:flex;align-items:center;gap:9px; }.od-help h2 svg { width:18px;height:18px;color:var(--text-3); }
.od-page .od-help>.card-body { padding:0 24px 22px; }
.od-help-intro { font-size:12px;line-height:1.7;color:var(--text-3);margin:7px 0 16px; }
.od-page .od-help .meta-list { margin:18px 0;gap:8px; }
.od-page .od-help .meta-list .row { justify-content:space-between;gap:12px;font-size:12px; }
.od-page .od-help .meta-list .row .v { flex:none;text-align:right; }
.od-page .od-help .btn:not(#btn-order-support) { border:0;justify-content:space-between;min-height:36px;padding:7px 0;background:transparent;font-size:12px;box-shadow:none; }
.od-page .od-help #btn-order-support { min-height:44px;border-radius:9px; }
@media(min-width:1180px){ .od-page .od-sidebar{position:sticky;top:110px;} }
@media(max-width:900px){
 .od-layout{grid-template-areas:"progress" "payment" "product" "information" "help";}
 .od-needs-payment .od-layout{grid-template-areas:"payment" "progress" "product" "information" "help";}
 .od-page .od-sidebar{position:static;}
}
@media(max-width:600px){
 .od-page .od-products>.card-head,.od-page .od-information>.card-head{padding:20px 18px 15px;align-items:flex-start;gap:8px;}
 .od-page .od-section-note{font-size:11px;text-align:right;}
 .od-page .od-products .card-body.tight{padding:0 18px;}
 .od-page .od-information>.card-body{padding:0 18px 20px;}
 .od-page .od-product-heading .thumb{width:62px;height:66px;flex-basis:62px;}
 .od-page .od-product-heading .thumb img{width:58px;height:58px;}
 .od-page .od-product-heading{grid-template-columns:62px minmax(0,1fr);gap:12px;}
 .od-page .od-product-heading .fw-7{font-size:15px;}
 .od-line-total{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;}
 .od-line-total b{font-size:17px;}.od-line-total small{font-size:11px;}
 .od-page .rf-order-info .rf-info{grid-template-columns:1fr;padding:14px;gap:12px;}
 .od-page .rf-info .row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
 .od-page .rf-info .row .v{text-align:right;}
 .od-page .od-detail-grid{grid-template-columns:1fr;gap:14px;}
 .od-page .od-detail-grid .row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;}
 .od-note{padding-top:16px;margin-top:18px;}
 .od-history li{grid-template-columns:1fr;gap:2px;}
 .od-page .od-payment>.card-head{padding:20px 18px 10px;}
 .od-page .od-st{padding:0 18px 6px;}
 .od-totals{padding:12px 18px 16px;}
 .od-page .od-amt{margin:0 18px;padding:14px 0 0;}
 .od-page .od-payment-method{margin:7px 18px 16px;}
 .od-page .od-more{margin:0 18px;padding:12px 0 16px;}
 .od-page .od-more .btn{min-height:40px;}
 .od-page .od-help>.card-head{padding:20px 18px 0;}
 .od-page .od-help>.card-body{padding:0 18px 20px;}
}
.policy-nav { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 0 0 24px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.policy-nav a, .policy-section a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.policy-nav [aria-current=page] { font-weight: 650; }
.policy-section h2 { font-size: 18px; line-height: 1.5; margin: 0 0 16px; }
.policy-section p { margin: 12px 0 0; overflow-wrap: anywhere; }
.policy-section strong { color: var(--text); font-weight: 650; }
@media (max-width: 600px) { .ox-policy .policy-section { padding: 20px 16px; } }

.eo-workspace{display:grid;gap:20px;min-width:0}.eo-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.eo-heading h1{font-size:22px;line-height:1.4;margin:0 0 6px;font-weight:650}.eo-heading p{margin:0;color:var(--text-3);font-size:13px;line-height:1.7}.eo-heading .btn{flex-shrink:0}.eo-panel{border:1px solid var(--line);border-radius:6px;background:var(--surface);min-width:0;overflow:hidden}.eo-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}.eo-panel h2{font-size:15px;font-weight:600;margin:0}.eo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.eo-panel>.eo-actions{padding:0 22px 20px}.eo-note{margin:0;font-size:13px;line-height:1.8;color:var(--text-3);overflow-wrap:anywhere}.eo-panel>.eo-note{padding:18px 22px}.eo-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow:hidden}.eo-metrics>div{padding:22px;border-right:1px solid var(--line);min-width:0}.eo-metrics>div:last-child{border:0}.eo-metrics span,.eo-metrics small{display:block;font-size:12px;color:var(--text-3);line-height:1.7}.eo-metrics strong{display:block;font-size:28px;font-weight:600;margin:12px 0 8px;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.eo-table{width:100%;overflow:auto;overscroll-behavior-x:contain}.eo-table table{min-width:580px}.eo-table .tbl th{font-size:12px;padding:14px 20px;font-weight:500;white-space:nowrap}.eo-table .tbl td{font-size:13px;padding:16px 20px;line-height:1.8;max-width:350px;overflow-wrap:anywhere;vertical-align:top}.eo-table small{display:block;font-size:12px;color:var(--text-3);line-height:1.7;margin-top:2px}.eo-table .btn{white-space:nowrap;margin:3px 6px 3px 0}.eo-tag{display:inline-block;font-size:12px;color:var(--text-2);background:var(--surface-2);border-radius:4px;padding:2px 8px;white-space:nowrap}.eo-tag.warning{color:#9c3b10;background:#fff0e6}.eo-search{padding:18px 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;font-size:13px}.eo-search .input{max-width:330px;flex:1;min-width:130px}.eo-search>span{margin-left:auto;color:var(--text-3);font-size:12px}.eo-empty{text-align:center;min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;color:var(--text-3)}.eo-empty h3{font-size:15px;font-weight:600;margin:16px 0 8px;color:var(--text-2)}.eo-empty p{font-size:13px;line-height:1.8;max-width:460px;margin:0}.eo-pager{padding:16px 22px;display:flex;align-items:center;justify-content:flex-end;gap:14px;color:var(--text-3);font-size:12px;border-top:1px solid var(--line)}.eo-disabled{opacity:.45;pointer-events:none}.eo-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;padding:20px 22px}.eo-toolbar .field{min-width:150px;margin:0;flex:1;max-width:230px}.eo-toolbar .field label{font-size:12px}.eo-toolbar .select{min-height:44px}.eo-panel form>.checkbox{padding:20px 22px 0;display:flex;font-size:13px;gap:8px}.eo-price-grid{max-height:55vh;overflow:auto}.eo-workspace :is(button,a,input,select):focus-visible{outline:2px solid var(--brand);outline-offset:3px}.eo-workspace .btn{min-height:40px}#eo-quality-report,#eo-monitor{min-width:0}#eo-monitor{padding:20px 22px}#eo-monitor .eo-note{margin:18px 0}.eo-workspace #eo-quality-report>.eo-empty{min-height:200px}[data-theme=dark] .eo-tag.warning{background:#3e2c20;color:#f1b58b}@media(max-width:720px){.eo-workspace{gap:16px}.eo-panel-head{padding:16px}.eo-heading{align-items:flex-start}.eo-metrics>div{padding:16px 12px}.eo-metrics strong{font-size:22px}.eo-panel>.eo-note,.eo-toolbar,.eo-search,#eo-monitor{padding:16px}.eo-panel>.eo-actions{padding:0 16px 16px}.eo-search label{flex-basis:100%}.eo-search>span{flex-basis:100%;margin:0}.eo-search .input{max-width:none}.eo-table .tbl td{padding:12px 16px}.eo-pager{padding:14px 16px}.eo-actions .btn,.eo-workspace .btn{min-height:44px}.eo-metrics small{font-size:11px}}
.eo-approval-summary{margin-bottom:24px;font-size:13px;line-height:1.8}.eo-approval-summary p{margin:8px 0}.eo-audit-dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:8px 16px;font-size:12px;line-height:1.8}.eo-audit-dl dt{color:var(--text-3)}.eo-audit-dl dd{margin:0;overflow-wrap:anywhere}.eo-audit-dl .eo-audit-dl{grid-template-columns:100px minmax(0,1fr)}
.ops-admin :is(.eo-workspace,.eo-dialog) .ox-primary{background:var(--brand)!important;border-color:var(--brand)!important;color:white!important}.ops-admin :is(.eo-workspace,.eo-dialog) .ox-primary:hover{background:var(--brand)!important;filter:brightness(.94)}
[data-theme=dark] .ops-admin :is(.eo-workspace,.eo-dialog) .ox-primary{color:#17213b!important}

/* Unified buyer message center and non-blocking mobile-style banners. */
.notice-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.notice-filters [aria-pressed="true"]{background:var(--text,#182438);color:var(--bg,#fff)}
.notice-list .ox-event{align-items:flex-start;gap:16px}.notice-list .ox-event>div{min-width:0;flex:1}.notice-list h3,.notice-list p{overflow-wrap:anywhere}.notice-list .is-unread{border-left:3px solid var(--brand,#3266d6)}
#customer-notice-banners{position:fixed;z-index:1100;top:max(16px,env(safe-area-inset-top));right:16px;width:min(390px,calc(100vw - 32px));display:grid;gap:10px;pointer-events:none}
.customer-notice-banner{pointer-events:auto;display:flex;background:var(--surface,#fff);color:var(--text,#172234);border:1px solid var(--border,#dbe1e8);border-radius:18px;box-shadow:0 12px 40px #0002;overflow:hidden;animation:notice-arrive .2s ease-out}
.customer-notice-open{flex:1;min-width:0;background:none;border:0;color:inherit;text-align:left;padding:16px;cursor:pointer;display:grid;gap:6px;font:inherit}.customer-notice-open strong{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.customer-notice-open>span{font-size:12px;opacity:.8}.customer-notice-label{font-weight:600}.customer-notice-close{align-self:flex-start;min-width:44px;min-height:44px;border:0;background:none;color:inherit;font-size:24px;cursor:pointer}.customer-notice-banner button:focus-visible{outline:2px solid var(--brand,#3266d6);outline-offset:-3px}
@keyframes notice-arrive{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.customer-notice-banner{animation:none}}

.store-maintenance{background:var(--warn-bg);color:var(--text);border-bottom:1px solid var(--warn-line)}.store-maintenance>.wrap{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-block:12px}.store-maintenance span{flex:1 1 220px;overflow-wrap:anywhere}.store-maintenance a{color:var(--brand-fg);text-decoration:underline}

/* Scoped game storefronts: MH Now's hunter palette and Pikmin's garden palette. */
.game-store{--gs-paper:#fffaf0;--gs-ink:#17304d;--gs-muted:#536070;--gs-line:#d4c6a3;--gs-accent:#8a631a;--gs-on:#fff;--gs-surface:#fff;--gs-soft:#f4ebda;background:var(--gs-paper);color:var(--gs-ink);padding:24px 0 60px;font-family:"Trebuchet MS","Microsoft YaHei",sans-serif}
.gs-wrap{max-width:1200px}.gs-back{color:var(--gs-ink);font-size:14px;text-decoration:underline;text-underline-offset:4px}.gs-mhnow{background:#faf4e5 url('../img/mhnow/background.png') center top/100% auto}.gs-pikmin{--gs-paper:#f1f8e8;--gs-ink:#254722;--gs-muted:#4d6549;--gs-line:#c6d9a9;--gs-accent:#3c7028;--gs-soft:#e7f1d5}
.gs-hero{position:relative;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:360px;margin:24px 0 40px;overflow:hidden;border:1px solid var(--gs-line)}
.gs-hero-copy{position:relative;z-index:1;padding:44px}.gs-hero h1{font-size:clamp(32px,4vw,52px);line-height:1.1;margin:16px 0;font-weight:800;letter-spacing:-1px}.gs-hero p{max-width:38ch;font-size:17px;line-height:1.8}.gs-service{display:inline-flex;padding:7px 14px;border:1px solid currentColor;font-size:13px;font-weight:700}.gs-hero-link{display:inline-block;margin-top:24px;padding:12px 18px;border:1px solid currentColor;font-weight:700}.gs-mhnow .gs-hero{background:#132a43;color:#fff9e7;border-color:#b48c47}.gs-mhnow .gs-service{color:#efd09a}.gs-hunter-emblem{text-align:center;padding:24px}.gs-hunter-emblem img{display:block;margin:auto;width:min(100%,300px);height:240px;object-fit:contain}.gs-hunter-emblem span{font-size:18px;letter-spacing:5px;color:#efd09a}
.gs-pikmin .gs-hero{border-radius:32px;background:#fafff5;grid-template-columns:1fr;min-height:480px;align-items:start}.gs-pikmin .gs-hero-copy{max-width:620px;padding:32px 40px}.gs-pikmin .gs-hero-art{width:100%;display:block;object-fit:cover;height:280px;object-position:center}.gs-pikmin .gs-service{border-radius:20px;background:#e7f3d1}.gs-pikmin .gs-hero-link{border-radius:24px;background:var(--gs-accent);color:white;border:0}
.gs-section-heading{margin-bottom:24px}.gs-section-heading h2,.gs-checkout h2{font-size:28px;margin-bottom:8px}.gs-section-heading p,.gs-small{color:var(--gs-muted);line-height:1.7}.gs-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gs-product.spec{display:flex;flex-direction:column;align-items:stretch;min-width:0;text-align:left;background:var(--gs-surface);color:var(--gs-ink);border:2px solid var(--gs-line);border-radius:6px;padding:0;overflow:hidden;cursor:pointer;transition:border-color .15s,box-shadow .15s}.gs-product.spec.on{border-color:var(--gs-accent);box-shadow:0 0 0 2px var(--gs-accent)}.gs-product.spec:hover:not(:disabled){border-color:var(--gs-accent)}.gs-product-image{display:grid;place-items:center;height:180px;background:var(--gs-soft)}.gs-product-image img{width:85%;height:160px;object-fit:contain}.gs-product-name{padding:20px 18px 8px;font-weight:800;font-size:19px;line-height:1.45;min-height:76px}.gs-product-note{font-size:13px;color:var(--gs-muted);padding:0 18px 18px;min-height:54px}.gs-product-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding:16px 18px;border-top:1px solid var(--gs-line)}.gs-product-bottom strong{font-size:23px;color:var(--gs-ink)}.gs-pick{font-size:12px;white-space:nowrap}.gs-product.on .gs-pick{font-size:0}.gs-product.on .gs-pick:after{content:'已选择';font-size:12px;font-weight:800}.gs-pikmin .gs-product.spec{border-radius:24px}.gs-pikmin .gs-products{grid-template-columns:repeat(3,minmax(0,1fr))}.gs-pikmin .gs-product-image{background:#eaf4d8}.gs-shop .sp-tabs{background:transparent;border:0;gap:12px;margin-bottom:24px}.gs-shop .sp-tab{border:1px solid var(--gs-line);border-radius:24px;min-height:44px;background:#fff;color:var(--gs-ink)}.gs-shop .sp-tab.on{background:var(--gs-accent);color:#fff}.gs-shop input:focus-visible~.sp-tabs{outline:2px solid var(--gs-accent);outline-offset:4px}.gs-empty{background:#fff;border:1px dashed var(--gs-line);border-radius:24px;text-align:center;padding:64px 24px}.gs-empty h3{font-size:24px;margin-bottom:12px}.gs-empty p{color:var(--gs-muted)}
.gs-checkout{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;background:var(--gs-surface);border:1px solid var(--gs-line);margin-top:40px;padding:32px}.gs-pikmin .gs-checkout{border-radius:28px}.gs-checkout .field{margin-top:20px}.gs-order{padding-left:32px;border-left:1px solid var(--gs-line)}.gs-order h3{font-size:23px;margin-bottom:12px}.gs-order label{display:block;margin:20px 0 8px;font-size:14px}.gs-total{display:flex;align-items:center;justify-content:space-between;margin:24px 0;gap:12px}.gs-total strong{font-size:30px}.gs-order>.btn{display:block;width:100%;min-height:48px;margin-bottom:12px}.gs-order>.btn-primary{background:var(--gs-accent);border-color:var(--gs-accent);color:var(--gs-on)}.game-store .qty{background:var(--gs-surface);color:var(--gs-ink)}.game-store .qty input,.game-store .qty button{color:var(--gs-ink);background:var(--gs-surface)}.gs-footnote{text-align:center;color:var(--gs-muted);font-size:13px;line-height:1.8;margin-top:32px}.game-store .buy-notice{color:var(--gs-ink);background:var(--gs-surface);border-color:var(--gs-line)}.game-store :is(a,button,input,select):focus-visible{outline:3px solid var(--gs-accent);outline-offset:4px}
[data-theme='dark'] .game-store{--gs-paper:#172330;--gs-ink:#f5ecd9;--gs-muted:#c0c6cd;--gs-line:#697784;--gs-accent:#e8c380;--gs-on:#172330;--gs-surface:#203142;--gs-soft:#293f51;background:var(--gs-paper)}
[data-theme='dark'] .gs-pikmin{--gs-paper:#1b2c1b;--gs-ink:#edf5dd;--gs-muted:#c4d4bb;--gs-line:#68815c;--gs-accent:#a1cf7a;--gs-on:#1b2c1b;--gs-surface:#263c25;--gs-soft:#314e2a}
[data-theme='dark'] .gs-pikmin :is(.gs-hero,.gs-empty,.sp-tab){background:var(--gs-surface);color:var(--gs-ink)}[data-theme='dark'] .gs-pikmin .gs-service{background:var(--gs-soft)}[data-theme='dark'] .gs-pikmin .gs-product-image{background:var(--gs-soft)}[data-theme='dark'] .gs-pikmin .gs-hero-link,[data-theme='dark'] .gs-pikmin .sp-tab.on{color:var(--gs-on)}
@media(max-width:900px){.gs-products{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-pikmin .gs-products{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-checkout{grid-template-columns:1fr;gap:24px}.gs-order{border-left:0;border-top:1px solid var(--gs-line);padding:24px 0 0}.gs-hero-copy{padding:28px}.gs-hero{min-height:300px}.gs-hunter-emblem img{height:180px}}
@media(max-width:520px){.game-store{padding-top:16px}.gs-hero{grid-template-columns:1fr;margin:20px 0 28px}.gs-hero-copy,.gs-pikmin .gs-hero-copy{padding:24px}.gs-hero h1{font-size:32px}.gs-hunter-emblem{padding:0 20px 20px}.gs-hunter-emblem img{height:150px}.gs-pikmin .gs-hero{min-height:0;border-radius:24px}.gs-pikmin .gs-hero-art{height:180px}.gs-products,.gs-pikmin .gs-products{gap:12px}.gs-product-image{height:130px}.gs-product-image img{height:115px}.gs-product-name{font-size:16px;padding:14px 12px 6px;min-height:68px}.gs-product-note{padding:0 12px 12px;font-size:12px}.gs-product-bottom{padding:12px;flex-direction:column;align-items:flex-start}.gs-product-bottom strong{font-size:22px}.gs-checkout{padding:20px;margin-top:28px}.gs-section-heading h2,.gs-checkout h2{font-size:24px}.gs-shop .sp-tabs{gap:6px}.gs-shop .sp-tab{padding:10px 12px;font-size:14px}.gs-footnote{text-align:left}}
@media(prefers-reduced-motion:reduce){.gs-product.spec{transition:none}}

.gs-mhnow .gs-hero h1{color:#fff9e7}.gs-mhnow .gs-hero .ox-save-product{color:#efd09a;border-color:#efd09a}.gs-hero-link{cursor:pointer;text-align:left}.game-store .gs-shop label.sp-tab{background:var(--gs-surface)!important;color:var(--gs-ink)!important}.game-store .gs-shop label.sp-tab.on{background:var(--gs-accent)!important;color:var(--gs-on)!important}.gs-section-heading{scroll-margin-top:100px}

.gs-mhnow .gs-hero-link{background:transparent;color:#fff9e7}.game-store .gs-product[aria-pressed=true]{border-color:var(--gs-accent)}

/* Account choice and the three real purchase steps. */
.gs-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 36px;border-top:1px solid var(--gs-line);border-bottom:1px solid var(--gs-line);background:var(--gs-surface)}
.gs-step{display:flex;align-items:center;gap:14px;padding:22px 20px;min-width:0;text-align:left;background:transparent;color:var(--gs-muted);cursor:pointer}
.gs-step+.gs-step{border-left:1px solid var(--gs-line)}.gs-step>span:nth-child(2){flex:1;min-width:0}.gs-step strong{display:block;font-size:16px;font-weight:800;color:var(--gs-ink)}.gs-step small{display:block;font-size:13px;line-height:1.6;margin-top:3px}
.gs-step-number{display:grid;place-items:center;flex:none;width:34px;height:34px;border:1px solid var(--gs-line);border-radius:50%;font-weight:800;font-size:16px;color:var(--gs-ink)}
.gs-step.current .gs-step-number,.gs-step.done .gs-step-number{background:var(--gs-accent);border-color:var(--gs-accent);color:var(--gs-on)}.gs-step.current{background:var(--gs-soft)}.gs-step.done .gs-step-number{font-size:0}.gs-step.done .gs-step-number:after{content:'✓';font-size:17px}
.gs-catalog-next{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px}.game-store .gs-catalog-next>.btn-primary{min-height:48px;background:var(--gs-accent);color:var(--gs-on);border-color:var(--gs-accent)}.gs-catalog-next .gs-small{font-size:14px}.gs-catalog-next button:disabled{opacity:.5;cursor:default}
.gs-stage-label{display:block;margin-bottom:8px;font-size:13px;font-weight:800;color:var(--gs-accent)}.gs-checkout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:36px;padding:36px}.gs-checkout>div,.gs-order{min-width:0}
.gs-account-form{margin:0;background:transparent;border:0;padding:0}.gs-account-form .rf-head{display:none}.gs-account-form select[hidden]{display:none!important}.game-store .gs-login-options{border:0;padding:0;margin:0;min-width:0}.gs-login-options legend{font-size:17px;font-weight:800;margin-bottom:6px;color:var(--gs-ink)}.gs-login-options>.gs-small{font-size:14px;margin:0 0 16px}
.gs-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gs-provider{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:88px;padding:16px 14px;border:1px solid var(--gs-line);border-radius:10px;background:var(--gs-surface);color:var(--gs-ink);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.gs-pikmin .gs-provider{border-radius:16px}.gs-provider input{position:absolute;left:12px;top:50%;width:1px;height:1px;opacity:0;clip-path:inset(50%)}.gs-provider.selected{border-color:var(--gs-accent);box-shadow:inset 0 0 0 1px var(--gs-accent);background:var(--gs-soft)}.gs-provider:hover{border-color:var(--gs-accent)}.gs-provider:has(input:focus-visible){outline:3px solid var(--gs-accent);outline-offset:3px}
.gs-provider-logo{display:grid;place-items:center;width:48px;height:48px;background:#fff;border-radius:10px;flex:none}.gs-provider-logo img{display:block;width:32px;height:32px;object-fit:contain}.gs-provider[data-gs-provider='NIANTIC KIDS'] .gs-provider-logo img{width:46px;height:38px}
.gs-provider-copy strong{display:block;color:var(--gs-ink);font-size:15px;font-weight:800;line-height:1.45;overflow-wrap:anywhere}.gs-provider-copy small{display:block;margin-top:3px;color:var(--gs-muted);font-size:12px;line-height:1.5}.gs-provider-status{color:var(--gs-accent);opacity:0}.gs-provider.selected .gs-provider-status{opacity:1}.gs-provider.unavailable .gs-provider-status{display:block;opacity:1;font-size:12px;line-height:1.5;white-space:nowrap;color:var(--gs-muted)}
.game-store .gs-login-feedback:empty{display:none}.game-store .gs-login-feedback:not(:empty){margin-top:14px;padding:14px 16px;background:#fff4de;border:1px solid #bc862e;border-radius:10px;font-size:14px;line-height:1.75;color:#714515}.gs-credentials{margin-top:24px;padding-top:20px;border-top:1px solid var(--gs-line)}.gs-account-guide{font-size:14px;line-height:1.7;color:var(--gs-muted);margin-bottom:4px}
.gs-account-form .rf-block{padding:0;background:transparent;border:0}.gs-account-form .rf-field{margin-top:18px}.gs-account-form label{font-size:14px;font-weight:700;color:var(--gs-ink)}.gs-account-form :is(input.input,select.select){min-height:50px;border-color:var(--gs-line);background:var(--gs-surface);color:var(--gs-ink);font-size:16px;border-radius:8px}.gs-account-form input::placeholder{color:var(--gs-muted);font-size:14px;opacity:.9}.gs-password-input{position:relative}.gs-password-input input{padding-right:68px}.gs-password-toggle{position:absolute;right:8px;top:6px;height:38px;min-width:48px;padding:0 8px;border-radius:6px;color:var(--gs-accent);background:var(--gs-soft);font-size:13px;font-weight:700;cursor:pointer}
.gs-code-guide .demo-tip{margin-top:20px;font-size:13px;line-height:1.8;color:var(--gs-muted);background:var(--gs-soft);border-color:var(--gs-line);padding:14px}.game-store .gs-review-next{margin-top:20px;width:100%;min-height:48px;border-color:var(--gs-accent);color:var(--gs-accent);background:var(--gs-surface)}
.gs-order{align-self:start;position:sticky;top:110px;padding:24px;border:1px solid var(--gs-line);border-radius:8px;background:var(--gs-soft)}.gs-pikmin .gs-order{border-radius:20px}.gs-order h3{font-size:24px}.gs-selection{list-style:none;margin:20px 0 14px;padding:0}.gs-selection li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid var(--gs-line)}.gs-selection img{width:40px;height:40px;object-fit:contain;background:var(--gs-surface);border-radius:6px}.gs-selection strong{display:block;font-size:14px;line-height:1.5;color:var(--gs-ink)}.gs-selection small{display:block;margin-top:4px;font-size:12px;color:var(--gs-muted)}.gs-selection b{font-size:15px;white-space:nowrap}.gs-selection .gs-selection-empty{display:block;font-size:14px;line-height:1.8;color:var(--gs-muted);padding:12px 0 20px}.gs-review-account{font-size:13px;color:var(--gs-muted);line-height:1.6;margin-top:18px;overflow-wrap:anywhere}.gs-order .gs-total{margin:20px 0;border-top:1px solid var(--gs-line);padding-top:20px}.gs-order .gs-total strong{font-size:30px}.gs-order .qty{width:100%;justify-content:space-between}.gs-order .qty input{flex:1;min-width:0}.gs-delivery-guide{border-top:1px solid var(--gs-line);padding-top:16px;margin-top:20px;font-size:13px;line-height:1.8;color:var(--gs-muted)}.gs-delivery-guide strong{font-weight:700;color:var(--gs-ink)}.gs-delivery-guide p{margin-top:5px}.game-store :is(#gs-catalog,#gs-account-step,#gs-review){scroll-margin-top:112px}
[data-theme='dark'] .gs-login-feedback:not(:empty){background:#423622;color:#fce0a8;border-color:#b99a57}
.gs-credentials[aria-disabled=true]{opacity:.55}
.gs-provider{transition:border-color .15s,box-shadow .15s}.gs-account-form :is(input.input,select.select){transition:border-color .15s,box-shadow .15s}
@media(max-width:1100px){.gs-checkout{gap:24px;padding:28px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.gs-provider{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:14px 10px}.gs-provider-logo{width:40px;height:44px}.gs-provider-logo img{width:28px;height:28px}.gs-step{padding:18px 14px;gap:10px}}
@media(max-width:900px){.gs-checkout{grid-template-columns:1fr;padding:28px}.gs-order{position:static;padding:24px;border:1px solid var(--gs-line)}.gs-provider{padding:16px;grid-template-columns:48px minmax(0,1fr) auto}.gs-provider-logo{width:48px;height:48px}.gs-provider-logo img{width:32px;height:32px}}
@media(max-width:520px){.gs-steps{margin-bottom:28px}.gs-step{padding:14px 7px;flex-direction:column;gap:8px;text-align:center}.gs-step strong{font-size:12px}.gs-step small,.gs-step>svg{display:none}.gs-step-number{width:28px;height:28px;font-size:14px}.gs-catalog-next{display:block}.gs-catalog-next .gs-small{margin-bottom:12px}.gs-catalog-next>.btn{width:100%}.gs-checkout{padding:20px;gap:28px}.gs-provider-grid{gap:10px}.gs-provider{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:13px 10px;min-height:88px}.gs-provider-logo{width:34px;height:38px;border-radius:7px}.gs-provider-logo img{width:26px;height:26px}.gs-provider[data-gs-provider='NIANTIC KIDS'] .gs-provider-logo img{width:34px;height:30px}.gs-provider-copy strong{font-size:13px}.gs-provider-copy small{font-size:11px}.gs-provider-status{position:absolute;right:6px;top:5px}.gs-provider.unavailable .gs-provider-status{font-size:10px;max-width:none;top:auto;bottom:5px}.gs-provider.selected .gs-provider-copy{padding-right:3px}.gs-order{padding:20px}.gs-login-options legend{font-size:16px}.gs-password-toggle{min-height:38px}.gs-order h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){.gs-provider{transition:none}}

/* Each game product owns its quantity; the order panel is a live summary. */
.game-store .gs-product.spec{cursor:default}
.game-store .gs-item-qty{display:inline-flex;align-items:center;justify-content:center;flex:none;width:fit-content;max-width:100%;gap:0;padding:2px;border:1px solid var(--gs-line);border-radius:26px;background:var(--gs-surface);color:var(--gs-ink)}
.game-store .gs-item-qty [hidden]{display:none!important}
.game-store .gs-item-qty button{display:grid;place-items:center;flex:none;min-width:44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;font-size:23px;line-height:1;background:transparent;color:var(--gs-accent);cursor:pointer}
.game-store .gs-item-qty button[data-gs-qty-delta='1']{background:var(--gs-accent);color:var(--gs-on)}
.game-store .gs-item-qty button:disabled{opacity:.45;cursor:default}
.game-store .gs-item-qty input{flex:none;width:48px;min-width:0;height:44px;padding:0;border:0;outline-offset:0;border-radius:4px;background:var(--gs-surface);color:var(--gs-ink);font-size:16px;font-weight:700;text-align:center;appearance:textfield;-moz-appearance:textfield}
.game-store .gs-item-qty input::-webkit-inner-spin-button,.game-store .gs-item-qty input::-webkit-outer-spin-button{appearance:none;margin:0}
.game-store .gs-item-qty.empty{border-color:transparent;padding:2px}
.game-store .gs-product.dis{opacity:.65}
.game-store .gs-product-bottom>.gs-item-qty{margin-left:auto}
.game-store #qty-hint{font-size:13px}
@media(max-width:680px){
 .gs-mhnow .gs-products{grid-template-columns:1fr;gap:14px}
 .gs-mhnow .gs-product.spec{display:grid;grid-template-columns:76px minmax(0,1fr);gap:6px 14px;padding:14px;overflow:visible}
 .gs-mhnow .gs-product-image{grid-column:1;grid-row:1/3;width:76px;height:76px;background:transparent}
 .gs-mhnow .gs-product-image img{width:76px;height:76px}
 .gs-mhnow .gs-product-name{grid-column:2;padding:0;min-height:0;font-size:17px;line-height:1.5}
 .gs-mhnow .gs-product-note{grid-column:2;padding:0;min-height:0;font-size:12px;line-height:1.6}
 .gs-mhnow .gs-product-bottom{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 0;margin-top:6px}
 .gs-mhnow .gs-product-bottom strong{font-size:24px}
}

/* Clear account verification, with edits returning to the existing fields. */
.game-store :is(#gs-catalog,#gs-account-step,#gs-review){scroll-margin-top:var(--gs-scroll-offset,112px)}
.game-store .gs-receipt-heading,.game-store .gs-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.game-store .gs-receipt-heading h3{margin:0;min-width:0}
.game-store .gs-edit{flex:none;min-height:44px;min-width:64px;padding:8px 0;border:0;border-radius:4px;background:transparent;color:var(--gs-accent);font-size:12px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.game-store .gs-edit:hover{color:var(--gs-ink)}
.game-store .gs-account-summary{border-top:1px solid var(--gs-line);padding-top:8px;margin-top:16px}
.game-store .gs-summary-heading h4{font-size:14px;color:var(--gs-ink);margin:0}
.game-store .gs-review-details{margin:4px 0 0;font-size:13px;line-height:1.6}
.game-store .gs-review-details>div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:start;gap:10px;padding:7px 0}
.game-store .gs-review-details dt{color:var(--gs-muted);font-weight:400}
.game-store .gs-review-details dd{margin:0;min-width:0;color:var(--gs-ink);overflow-wrap:anywhere}
.game-store .gs-review-provider{display:flex;align-items:center;gap:7px}
.game-store .gs-review-provider img{flex:none;width:22px;height:22px;object-fit:contain;background:#fff;border-radius:4px;padding:2px}
.game-store .gs-review-password{font-size:12px}
.game-store .gs-review-password span{letter-spacing:1px}
.game-store .gs-selection small{line-height:1.7}
.game-store .gs-selection b,.game-store .gs-total strong,.game-store .gs-dock-summary{font-variant-numeric:tabular-nums}
.gs-mhnow .gs-provider-grid{grid-template-columns:1fr;gap:10px}
.gs-mhnow .gs-provider[data-gs-provider='Google'] .gs-provider-status{opacity:1;font-size:12px;font-weight:700}
.gs-mhnow .gs-provider.unavailable{grid-template-columns:28px minmax(0,1fr) auto;gap:10px;padding:10px 14px;min-height:58px;background:var(--gs-surface);border-style:dashed}
.gs-mhnow .gs-provider.unavailable .gs-provider-logo{width:28px;height:28px;background:transparent}
.gs-mhnow .gs-provider.unavailable .gs-provider-logo img{width:22px;height:22px}
.gs-mhnow .gs-provider.unavailable .gs-provider-copy strong{font-size:13px}
.gs-mhnow .gs-provider.unavailable .gs-provider-copy small{font-size:12px;margin-top:1px}
.gs-mhnow .gs-provider-status{position:static}
.gs-mhnow .gs-product.spec{position:relative}
.gs-mhnow .gs-first-bonus{position:absolute;right:10px;top:12px;padding:5px 9px;background:#dc2626;color:#fff;border-radius:4px;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.game-store .gs-mobile-dock{display:none}
@media(max-width:900px){
 .gs-mhnow .gs-order{top:auto}
}
@media(max-width:680px){
 .gs-mhnow .gs-hero{min-height:0;display:block;margin:16px 0 20px}
 .gs-mhnow .gs-hero-copy{padding:20px}
 .gs-mhnow .gs-hero .gs-service{font-size:12px;padding:6px 10px}
 .gs-mhnow .gs-hero h1{font-size:27px;letter-spacing:-.6px;margin:14px 0 10px}
 .gs-mhnow .gs-hero p{font-size:14px;line-height:1.7;margin:0;max-width:32ch}
 .gs-mhnow .gs-hero .ox-save-product{position:absolute;top:16px;right:16px;margin:0;min-height:44px;padding:6px 10px;font-size:12px;background:transparent}
 .gs-mhnow .gs-hero-link{margin-top:16px;min-height:44px;padding:10px 12px;font-size:12px;max-width:calc(100% - 88px)}
 .gs-mhnow .gs-hunter-emblem{position:absolute;right:16px;bottom:14px;padding:0;width:76px;pointer-events:none}
 .gs-mhnow .gs-hunter-emblem img{width:76px;height:76px}
 .gs-mhnow .gs-hunter-emblem span{display:none}
 .gs-mhnow .gs-steps{margin-bottom:24px}
 .gs-mhnow .gs-first-bonus{position:static;display:table;margin:2px 0 5px;padding:3px 7px;font-size:11px;white-space:normal}
 .gs-mhnow .gs-provider[data-gs-provider='Google']{grid-template-columns:34px minmax(0,1fr) auto;min-height:74px}
 .gs-mhnow .gs-provider.unavailable .gs-provider-status{font-size:11px}
 .game-store .gs-password-toggle{top:3px;height:44px;min-height:44px}
 .game-store .gs-mobile-dock{position:fixed;inset:auto 0 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:80px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--gs-line);background:var(--gs-surface);box-shadow:0 -5px 20px #1020300a;color:var(--gs-ink)}
 .game-store .gs-dock-summary{min-width:0;flex:1}
 .game-store .gs-dock-summary>small{display:block;font-size:12px;color:var(--gs-muted);line-height:1.5}
 .game-store .gs-dock-summary strong{display:block;font-size:clamp(19px,6vw,23px);line-height:1.3;color:var(--gs-ink);overflow-wrap:anywhere}
 .game-store .gs-dock-summary strong small{display:inline;font-size:13px;margin-right:2px;color:var(--gs-ink)}
 .game-store #gs-dock-next{flex:none;min-height:48px;min-width:140px;padding:10px 16px;border:1px solid var(--gs-accent);border-radius:8px;background:var(--gs-accent);color:var(--gs-on);font-size:15px;font-weight:700;white-space:nowrap}
 .game-store #gs-dock-next:disabled{opacity:.65;cursor:wait}
 body:has(.gs-mobile-dock) .support-fab{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 body:has(.gs-mobile-dock) .growth-privacy-button{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 body:has(.gs-mobile-dock) .growth-preferences{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
 body:has(.gs-mobile-dock) .site-footer{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))}
 html:has(.gs-mobile-dock){scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
 .game-store :is(input,button){scroll-margin-bottom:96px}
}

/* Pikmin: a sunny garden, compact coin tiers and a paper-like order receipt. */
.game-store.gs-pikmin {
  --gs-paper: #fbfcf6;
  --gs-ink: #28452b;
  --gs-muted: #5c6c5b;
  --gs-line: #dce5d4;
  --gs-accent: #39743b;
  --gs-on: #fff;
  --gs-surface: #fff;
  --gs-soft: #edf4e4;
  --pk-gold: #f6cf69;
  --pk-petal: #e4ead8;
  --pk-coin: #fcf4db;
  --pk-receipt: #f3f6e9;
  background: var(--gs-paper);
  font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
  padding: 24px 0 56px;
}
.gs-pikmin .gs-wrap { max-width: 1240px; }
.gs-pikmin .gs-back { display: inline-flex; min-height: 36px; align-items: center; text-decoration: none; color: var(--gs-muted); font-size: 13px; }
.gs-pikmin .gs-back:hover { color: var(--gs-accent); text-decoration: underline; }
.gs-pikmin .gs-hero {
  display: flex;
  align-items: center;
  min-height: 356px;
  margin: 12px 0 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
}
.gs-pikmin .gs-hero-copy { width: 49%; max-width: none; padding: 24px 0 38px; }
.gs-pikmin .pk-brand { display: flex; gap: 10px; align-items: center; color: var(--gs-muted); font-size: 13px; letter-spacing: 1px; }
.gs-pikmin .pk-brand .pk-flower { width: 25px; height: 25px; color: var(--pk-petal); }
.gs-pikmin .gs-hero h1 { color: var(--gs-ink); font-size: clamp(36px, 3.7vw, 52px); font-weight: 800; letter-spacing: -2px; line-height: 1.22; margin: 22px 0 12px; }
.gs-pikmin .gs-hero .ox-save-product { position: absolute; top: 14px; right: 18px; display: flex; width: fit-content; margin: 0; font-size: 12px; font-weight: 500; border: 1px solid var(--gs-line); border-radius: 22px; padding: 0 14px; min-height: 44px; background: var(--gs-paper); color: var(--gs-muted); letter-spacing: 0; }
.gs-pikmin .gs-hero p.pk-hero-tagline { max-width: none; font-size: 20px; line-height: 1.7; color: var(--gs-ink); margin: 0; }
.gs-pikmin .pk-hero-action { display: flex; align-items: center; gap: 20px; margin-top: 24px; }
.gs-pikmin .gs-hero-link { display: inline-flex; align-items: center; justify-content: center; gap: 14px; margin: 0; min-height: 48px; padding: 12px 22px; border-radius: 28px; background: var(--gs-accent); color: var(--gs-on); font-size: 14px; box-shadow: none; }
.gs-pikmin .gs-service { border: 0; border-radius: 0; padding: 0; background: transparent; font-size: 13px; color: var(--gs-muted); font-weight: 500; }
.gs-pikmin .gs-hero-art { position: absolute; right: 0; top: 0; width: 60%; height: 100%; object-fit: cover; object-position: 55% center; border-radius: 90px 24px 24px 90px; mask-image: linear-gradient(to right, transparent, #000 20%); }
.gs-pikmin .gs-steps { gap: 24px; border: 0; background: transparent; margin-bottom: 48px; }
.gs-pikmin .gs-step { position: relative; border: 0; padding: 14px 0; gap: 12px; background: transparent; border-bottom: 2px solid var(--gs-line); min-height: 44px; }
.gs-pikmin .gs-step.current { border-bottom-color: var(--gs-accent); }
.gs-pikmin .gs-step-number { width: 32px; height: 32px; border: 0; background: var(--gs-soft); font-size: 14px; }
.gs-pikmin .gs-step.current .gs-step-number, .gs-pikmin .gs-step.done .gs-step-number { background: var(--gs-accent); color: var(--gs-on); }
.gs-pikmin .gs-step strong { font-size: 14px; }
.gs-pikmin .gs-step small { font-size: 12px; }
.gs-pikmin .gs-step > svg { opacity: .5; }
.gs-pikmin .gs-section-heading { margin-bottom: 24px; }
.gs-pikmin :is(.gs-section-heading h2, .gs-checkout h2) { color: var(--gs-ink); font-size: 29px; font-weight: 750; line-height: 1.4; letter-spacing: -.7px; margin: 6px 0 8px; }
.gs-pikmin .gs-section-heading p { font-size: 14px; margin: 0; }
.gs-pikmin .pk-section-number { color: var(--gs-muted); font-size: 12px; letter-spacing: 1px; font-weight: 600; }
.gs-pikmin .pk-catalog-heading { display: flex; justify-content: space-between; align-items: center; }
.gs-pikmin .pk-catalog-heading > .pk-flower { width: 68px; height: 68px; margin-right: 24px; color: var(--pk-petal); transform: rotate(15deg); }
.game-store.gs-pikmin .gs-shop .sp-tabs { display: flex; border-bottom: 1px solid var(--gs-line); gap: 30px; margin-bottom: 24px; border-radius: 0; }
.game-store.gs-pikmin .gs-shop label.sp-tab { position: relative; border: 0; border-radius: 0; background: transparent !important; color: var(--gs-muted) !important; min-height: 48px; padding: 12px 4px 14px; font-size: 15px; font-weight: 600; }
.game-store.gs-pikmin .gs-shop label.sp-tab.on { background: transparent !important; color: var(--gs-accent) !important; }
.gs-pikmin .gs-shop label.sp-tab.on:after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 3px; border-radius: 3px; background: var(--gs-accent); }
.gs-pikmin .gs-products { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.gs-pikmin .gs-product.spec { display: flex; align-items: center; border: 1px solid var(--gs-line); border-radius: 18px; background: var(--gs-surface); padding: 18px 16px 14px; text-align: center; box-shadow: 0 3px 0 rgba(40, 69, 43, .025); overflow: visible; }
.gs-pikmin .gs-product.spec:hover:not(:disabled) { border-color: var(--gs-accent); box-shadow: 0 5px 16px rgba(40, 69, 43, .08); }
.gs-pikmin .gs-product.spec.on { border-color: var(--gs-accent); box-shadow: 0 0 0 2px var(--gs-accent); background: var(--gs-surface); }
.gs-pikmin .gs-product-image { flex: none; width: 114px; height: 110px; border-radius: 50%; background: var(--pk-coin); margin: 0 0 16px; }
.gs-pikmin .gs-product-image img { width: 104px; height: 96px; object-fit: contain; }
.gs-pikmin .pk-coin-copy { display: block; width: 100%; }
.gs-pikmin .gs-product-name { display: block; min-height: 0; padding: 0; font-size: 23px; line-height: 1.5; font-weight: 800; letter-spacing: -.5px; color: var(--gs-ink); }
.gs-pikmin .gs-product-name small { display: inline; font-size: 12px; font-weight: 500; letter-spacing: 0; color: var(--gs-muted); }
.gs-pikmin .gs-product-bottom { display: block; margin-top: 8px; padding: 0; border: 0; }
.gs-pikmin .gs-product-bottom strong { font-size: 26px; color: var(--gs-ink); font-weight: 750; letter-spacing: -.5px; }
.gs-pikmin .pk-coin-choice { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--gs-line); color: var(--gs-muted); }
.gs-pikmin .gs-pick { font-size: 12px; }
.gs-pikmin .pk-select-mark { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid var(--gs-line); border-radius: 50%; }
.gs-pikmin .pk-select-mark svg { opacity: 0; }
.gs-pikmin .gs-product.on .pk-select-mark { background: var(--gs-accent); border-color: var(--gs-accent); color: var(--gs-on); }
.gs-pikmin .gs-product.on .pk-select-mark svg { opacity: 1; }
.gs-pikmin .gs-product.on .pk-coin-choice { color: var(--gs-accent); }
.gs-pikmin .gs-catalog-next { margin-top: 24px; gap: 24px; }
.gs-pikmin .gs-catalog-next .gs-small { font-size: 13px; }
.gs-pikmin .gs-catalog-next > .btn-primary { display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 22px; border-radius: 26px; font-size: 14px; }
.gs-pikmin .gs-empty { display: grid; justify-items: center; gap: 12px; background: var(--gs-soft); border: 0; border-radius: 18px; padding: 48px 24px; }
.gs-pikmin .gs-empty .pk-flower { color: var(--pk-petal); }
.gs-pikmin .gs-empty h3 { color: var(--gs-ink); margin: 0; font-size: 22px; }
.gs-pikmin .gs-empty p { font-size: 14px; }
.gs-pikmin .gs-checkout { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); align-items: start; gap: 56px; border: 0; border-top: 1px solid var(--gs-line); border-radius: 0; background: transparent; padding: 44px 0 0; margin-top: 40px; }
.gs-pikmin .pk-account { padding: 0; }
.gs-pikmin .gs-checkout .field { margin: 28px 0 0; }
.gs-pikmin .gs-login-options legend { font-size: 14px; font-weight: 650; }
.gs-pikmin .gs-login-options > .gs-small { font-size: 12px; margin-bottom: 14px; }
.gs-pikmin .gs-provider-grid { gap: 12px; }
.gs-pikmin .gs-provider { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; min-height: 76px; padding: 12px 14px; border-radius: 12px; }
.gs-pikmin .gs-provider-logo { width: 40px; height: 40px; border-radius: 7px; }
.gs-pikmin .gs-provider-logo img { width: 28px; height: 28px; }
.gs-pikmin .gs-provider[data-gs-provider='NIANTIC KIDS'] .gs-provider-logo img { width: 39px; height: 32px; }
.gs-pikmin .gs-provider-copy strong { font-size: 14px; }
.gs-pikmin .gs-provider-copy small { font-size: 11px; }
.gs-pikmin .gs-provider.selected { background: var(--gs-soft); }
.gs-pikmin .gs-credentials { border: 0; margin-top: 20px; padding: 0; }
.gs-pikmin .gs-account-guide { font-size: 12px; margin-bottom: 0; }
.gs-pikmin .gs-account-form .rf-field { margin-top: 16px; }
.gs-pikmin .gs-account-form :is(input.input, select.select) { border-radius: 10px; min-height: 50px; }
.gs-pikmin .gs-account-form label { font-size: 13px; }
.gs-pikmin .gs-password-toggle { top: 3px; height: 44px; min-width: 48px; background: transparent; border: 0; box-shadow: none; }
.gs-pikmin .gs-code-guide .demo-tip { padding: 12px 14px; font-size: 12px; border: 0; border-left: 3px solid var(--gs-line); border-radius: 0 8px 8px 0; background: transparent; }
.gs-pikmin .gs-review-next { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; background: transparent; border: 0; border-top: 1px solid var(--gs-line); border-radius: 0; font-size: 14px; text-align: left; }
.gs-pikmin .gs-order { position: sticky; top: 110px; border: 0; border-radius: 20px 20px 0 0; padding: 28px 28px 32px; background: var(--pk-receipt); margin-bottom: 12px; }
.gs-pikmin .gs-order:after { content: ''; position: absolute; height: 12px; bottom: -11px; left: 0; right: 0; background: linear-gradient(135deg, var(--pk-receipt) 25%, transparent 25%) -12px 0/24px 24px, linear-gradient(225deg, var(--pk-receipt) 25%, transparent 25%) -12px 0/24px 24px; }
.gs-pikmin .pk-receipt-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.gs-pikmin .pk-receipt-heading > .pk-flower { flex: none; width: 38px; height: 38px; color: var(--gs-surface); }
.gs-pikmin .gs-order h3 { font-size: 24px; line-height: 1.5; font-weight: 750; color: var(--gs-ink); margin: 6px 0 0; letter-spacing: -.5px; }
.gs-pikmin .gs-selection { margin: 20px 0 14px; }
.gs-pikmin .gs-selection .gs-selection-empty { padding: 20px 0 28px; border-bottom-style: dashed; }
.gs-pikmin .gs-selection img { background: transparent; width: 42px; height: 42px; }
.gs-pikmin .gs-selection li { gap: 12px; border-bottom-style: dashed; }
.gs-pikmin .gs-selection b { color: var(--gs-ink); }
.gs-pikmin .pk-quantity { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; }
.gs-pikmin .gs-order label { margin: 0; font-size: 13px; }
.gs-pikmin .gs-order .qty { width: 136px; flex: none; border-radius: 9px; border-color: var(--gs-line); }
.gs-pikmin .gs-order .qty button { width: 44px; height: 44px; min-width: 44px; border: 0; }
.gs-pikmin .gs-order .qty input { padding: 0; width: 42px; height: 44px; border: 0; }
.gs-pikmin .gs-review-account { font-size: 12px; }
.gs-pikmin .gs-order .gs-total { margin: 24px 0 20px; border-top: 1px dashed var(--gs-line); padding-top: 22px; }
.gs-pikmin .gs-total > span { font-size: 14px; }
.gs-pikmin .gs-order .gs-total strong { color: var(--gs-ink); font-size: 34px; font-weight: 800; letter-spacing: -1px; }
.gs-pikmin .gs-order > .btn { display: flex; align-items: center; justify-content: center; gap: 12px; border-radius: 26px; font-size: 14px; min-height: 48px; }
.gs-pikmin .gs-order #btn-addcart { background: transparent; border-color: var(--gs-line); color: var(--gs-ink); }
.gs-pikmin .gs-delivery-guide { text-align: center; border-top: 0; margin-top: 12px; padding-top: 8px; font-size: 12px; }
.gs-pikmin .gs-delivery-guide strong { font-weight: 650; }
.gs-pikmin .buy-notice { margin-top: 32px; border: 0; background: transparent; padding-left: 0; padding-right: 0; }
.gs-pikmin .gs-footnote { text-align: left; border-top: 1px solid var(--gs-line); padding-top: 18px; margin-top: 22px; font-size: 12px; }

[data-theme='dark'] .game-store.gs-pikmin {
  --gs-paper: #1b291e;
  --gs-ink: #f1f6e6;
  --gs-muted: #c0d0bb;
  --gs-line: #52674f;
  --gs-accent: #b0d68d;
  --gs-on: #20351e;
  --gs-surface: #25382a;
  --gs-soft: #31462c;
  --pk-petal: #506745;
  --pk-coin: #454130;
  --pk-receipt: #2b3d28;
}
[data-theme='dark'] .gs-pikmin .gs-hero { background: transparent; }
[data-theme='dark'] .gs-pikmin .gs-service { background: transparent; }
[data-theme='dark'] .gs-pikmin .gs-product-image { background: var(--pk-coin); }

@media (max-width: 1100px) {
  .gs-pikmin .gs-checkout { gap: 32px; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
  .gs-pikmin .gs-products { gap: 12px; }
  .gs-pikmin .gs-product.spec { padding: 16px 10px 12px; }
  .gs-pikmin .gs-product-image { width: 94px; height: 92px; }
  .gs-pikmin .gs-product-image img { width: 90px; height: 82px; }
  .gs-pikmin .gs-product-name { font-size: 21px; }
  .gs-pikmin .gs-product-bottom strong { font-size: 24px; }
  .gs-pikmin .gs-order { padding: 24px; }
  .gs-pikmin .gs-provider { padding: 12px 10px; gap: 9px; grid-template-columns: 34px minmax(0, 1fr); }
  .gs-pikmin .gs-provider-status { position: absolute; right: 7px; top: 6px; }
}
@media (max-width: 900px) {
  .gs-pikmin .gs-hero { min-height: 300px; }
  .gs-pikmin .gs-hero-copy { width: 53%; }
  .gs-pikmin .gs-hero-art { width: 58%; }
  .gs-pikmin .gs-hero h1 { font-size: 36px; }
  .gs-pikmin .gs-hero p.pk-hero-tagline { font-size: 17px; }
  .gs-pikmin .pk-hero-action { gap: 14px; }
  .gs-pikmin .gs-hero-link { padding: 12px 18px; font-size: 13px; gap: 8px; }
  .gs-pikmin .gs-products { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
  .gs-pikmin .gs-product-name { font-size: 18px; }
  .gs-pikmin .gs-product-name small { display: block; }
  .gs-pikmin .gs-product-bottom strong { font-size: 22px; }
  .gs-pikmin .gs-product-image { width: 84px; height: 82px; }
  .gs-pikmin .gs-product-image img { width: 80px; height: 74px; }
  .gs-pikmin .pk-coin-choice { gap: 6px; }
  .gs-pikmin .gs-checkout { grid-template-columns: 1fr; gap: 32px; }
  .gs-pikmin .gs-order { position: relative; top: auto; }
  .gs-pikmin .gs-provider { grid-template-columns: 40px minmax(0, 1fr) auto; padding: 14px; }
  .gs-pikmin .gs-provider-status { position: static; }
}
@media (max-width: 680px) {
  .game-store.gs-pikmin { padding-top: 12px; }
  .gs-pikmin .gs-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; margin: 4px 0 24px; }
  .gs-pikmin .gs-hero-copy { width: 100%; padding: 12px 0 24px; }
  .gs-pikmin .pk-brand { font-size: 11px; gap: 8px; }
  .gs-pikmin .gs-hero h1 { font-size: 36px; margin: 14px 0 10px; letter-spacing: -1.5px; }
  .gs-pikmin .gs-hero .ox-save-product { top: 2px; right: 0; min-height: 44px; }
  .gs-pikmin .gs-hero p.pk-hero-tagline { font-size: 16px; }
  .gs-pikmin .pk-hero-action { margin-top: 18px; }
  .gs-pikmin .gs-hero-art { position: static; width: 100%; height: auto; aspect-ratio: 2.24; object-fit: cover; border-radius: 18px; mask-image: none; }
  .gs-pikmin .gs-steps { gap: 12px; margin-bottom: 32px; }
  .gs-pikmin .gs-step { flex-direction: row; gap: 8px; padding: 12px 0; text-align: left; }
  .gs-pikmin .gs-step-number { width: 25px; height: 25px; font-size: 12px; }
  .gs-pikmin .gs-step strong { font-size: 11px; }
  .gs-pikmin .gs-step small, .gs-pikmin .gs-step > svg { display: none; }
  .gs-pikmin .gs-section-heading { margin-bottom: 18px; }
  .gs-pikmin :is(.gs-section-heading h2, .gs-checkout h2) { font-size: 25px; }
  .gs-pikmin .pk-section-number { font-size: 11px; }
  .gs-pikmin .gs-section-heading p { font-size: 13px; }
  .gs-pikmin .pk-catalog-heading > .pk-flower { width: 45px; height: 45px; margin-right: 8px; }
  .game-store.gs-pikmin .gs-shop .sp-tabs { gap: 28px; margin-bottom: 18px; }
  .game-store.gs-pikmin .gs-shop label.sp-tab { font-size: 14px; }
  .gs-pikmin .gs-products { grid-template-columns: 1fr; gap: 10px; }
  .gs-pikmin .gs-product.spec { display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; gap: 16px; text-align: left; padding: 12px 16px 12px 12px; border-radius: 14px; min-height: 96px; }
  .gs-pikmin .gs-product-image { width: 66px; height: 66px; margin: 0; }
  .gs-pikmin .gs-product-image img { width: 62px; height: 60px; }
  .gs-pikmin .gs-product-name { font-size: 20px; line-height: 1.4; }
  .gs-pikmin .gs-product-name small { display: inline; }
  .gs-pikmin .gs-product-bottom { margin-top: 5px; }
  .gs-pikmin .gs-product-bottom strong { font-size: 21px; }
  .gs-pikmin .pk-coin-choice { flex-direction: column-reverse; margin: 0; padding: 0; border: 0; width: 54px; gap: 6px; }
  .gs-pikmin .pk-select-mark { width: 23px; height: 23px; }
  .gs-pikmin .gs-pick, .gs-pikmin .gs-product.on .gs-pick:after { font-size: 11px; }
  .gs-pikmin .gs-product.on .gs-pick { font-size: 0; }
  .gs-pikmin .gs-catalog-next { display: flex; flex-direction: column; gap: 12px; align-items: stretch; margin-top: 18px; }
  .gs-pikmin .gs-catalog-next .gs-small { font-size: 12px; margin: 0; }
  .gs-pikmin .gs-catalog-next > .btn { width: 100%; }
  .gs-pikmin .gs-checkout { padding: 32px 0 0; margin-top: 32px; gap: 32px; }
  .gs-pikmin .gs-checkout .field { margin-top: 22px; }
  .gs-pikmin .gs-provider-grid { gap: 10px; }
  .gs-pikmin .gs-provider { min-height: 74px; padding: 12px 10px; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; border-radius: 10px; }
  .gs-pikmin .gs-provider-logo { width: 30px; height: 36px; }
  .gs-pikmin .gs-provider-logo img { width: 25px; height: 25px; }
  .gs-pikmin .gs-provider[data-gs-provider='NIANTIC KIDS'] .gs-provider-logo img { width: 30px; height: 28px; }
  .gs-pikmin .gs-provider-copy strong { font-size: 12px; }
  .gs-pikmin .gs-provider-copy small { font-size: 10px; }
  .gs-pikmin .gs-provider-status { position: absolute; top: 5px; right: 5px; }
  .gs-pikmin .gs-account-form input::placeholder { font-size: 12px; }
  .gs-pikmin .gs-order { padding: 24px 22px 26px; border-radius: 16px 16px 0 0; }
  .gs-pikmin .gs-order h3 { font-size: 23px; }
  .gs-pikmin .gs-total strong { font-size: 30px; }
  .gs-pikmin .buy-notice { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .gs-pikmin .gs-product.spec { transition: none; }
}

/* Direct + / quantity / − replaces the former selection indicator. */
.gs-pikmin .gs-product.spec > .gs-item-qty { margin-top: 16px; margin-left: auto; align-self: flex-end; justify-self: end; }
.game-store.gs-pikmin .gs-shop label.sp-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.gs-pikmin .gs-tab-status { font-size: 11px; font-weight: 400; color: var(--gs-muted); line-height: 1.4; }
.gs-pikmin .gs-account-summary { border-top-style: dashed; }
.gs-pikmin .gs-mobile-dock #gs-dock-next { border-radius: 26px; }
@media (max-width: 900px) {
  .gs-pikmin .gs-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .game-store.gs-pikmin .gs-shop .sp-tabs { gap: 20px; }
  .gs-pikmin .gs-products { grid-template-columns: 1fr; }
  .gs-pikmin .gs-product.spec { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 10px; padding: 12px; }
  .gs-pikmin .gs-product-image { width: 56px; height: 56px; }
  .gs-pikmin .gs-product-image img { width: 54px; height: 52px; }
  .gs-pikmin .gs-product.spec > .gs-item-qty { margin-top: 0; }
  .gs-pikmin .gs-product-name { font-size: 20px; overflow-wrap: anywhere; }
  .gs-pikmin .gs-product-bottom strong { font-size: 21px; }
}
@media (max-width: 360px) {
  .gs-pikmin .gs-product.on .pk-coin-copy { grid-column: 2 / 4; grid-row: 1; }
  .gs-pikmin .gs-product.on > .gs-item-qty { grid-column: 2 / 4; grid-row: 2; justify-self: end; }
}

/* Order-scoped login verification. */
.verification-overlay{animation:vf-fade-in .18s ease-out;transition:opacity .16s ease}
.verification-dialog{animation:vf-enter .24s cubic-bezier(.2,.75,.25,1);border-radius:18px;outline:none}
.verification-dialog .modal-head{padding:22px 28px;border-bottom:1px solid #e7edf6}
.verification-dialog .modal-body{padding:26px 28px}
.verification-dialog .modal-foot{padding:18px 28px;background:#f8faff;border-top:1px solid #e7edf6}
.vf-buyer-dialog{width:660px;max-width:calc(100vw - 32px);position:relative}
.vf-buyer-dialog .modal-body{padding:36px 34px 22px}
.vf-close{position:absolute;right:8px;top:8px;border:0;background:transparent;color:#77849a;cursor:pointer;font-size:24px;width:44px;height:44px;border-radius:6px}
.verification-dialog .x{width:44px;height:44px}
.vf-close:hover{background:#f0f4fa}
.vf-buyer{text-align:center;color:#13213d}
.vf-status{display:inline-flex;align-items:center;gap:8px;border-radius:30px;padding:7px 12px;background:#e9f0ff;color:#1457e8;font-size:13px;font-weight:600;line-height:1.4}
.vf-status i{width:7px;height:7px;background:#1b61f2;border-radius:50%;flex-shrink:0}
.vf-buyer h2{margin:20px 0 8px;font-size:30px;font-weight:750;letter-spacing:-.5px;line-height:1.3}
.vf-subtitle{margin:0 0 25px;color:#6a7892;font-size:15px}
.vf-meta{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:20px;background:#f4f6fb;border-radius:10px;padding:17px 20px}
.vf-meta>div+div{border-left:1px solid #dce3ef;padding-left:24px}
.vf-meta span{display:block;color:#71809a;font-size:12px;margin-bottom:6px}
.vf-meta strong{display:block;overflow-wrap:anywhere;font-size:14px;font-weight:600}
.vf-number-row{display:flex;align-items:center;gap:22px;margin:26px 0 20px}
.vf-number-row>span{height:1px;flex:1;background:#c4d5f5}
.vf-number{width:78px;height:78px;display:grid;place-items:center;border:2px solid #2265ff;border-radius:12px;box-shadow:0 0 0 4px #f2f6ff inset;color:#145bf0;font-size:38px;font-weight:750;flex-shrink:0}
.vf-instruction{font-size:15px;line-height:1.85;margin:20px 0;color:#34435f;overflow-wrap:anywhere}
.vf-instruction b{color:#145bf0}
.vf-note{display:block;text-align:left;background:#f3f6fa;color:#697b95;border-radius:8px;font-size:13px;line-height:1.7;padding:12px 15px;margin:16px 0}
.vf-buttons{display:flex;gap:12px;margin-top:20px}
.vf-buttons .btn{flex:1;min-height:48px;font-size:16px;font-weight:650;border-radius:8px}
.vf-secondary{background:#fff;border-color:#3377ff;color:#223451}
.vf-footer{margin:25px 0 0;padding-top:18px;border-top:1px solid #e6ebf4;color:#8b98ac;font-size:12px}
.vf-result,.vf-action-symbol{margin:22px auto 8px;width:66px;height:66px;display:grid;place-items:center;font-size:30px;color:#2167ed;border-radius:18px;background:#eff4ff}
.vf-result.is-success{color:#12875a;background:#ebf8f2}
.vf-label{display:block;color:#3d4e68;font-size:13px;font-weight:650;margin:20px 0 9px;text-align:left}
.vf-code-input{text-align:center;letter-spacing:6px;font-size:24px;min-height:52px}
.vf-small{font-size:12px;line-height:1.8;color:#7b8aa1;margin:10px 0;text-align:left}
.vf-error{color:#c43c3c;font-size:13px;line-height:1.7;text-align:left}
.vf-error:empty{display:none}
.vf-help{background:#fff8eb;color:#8e6220;border-radius:8px;padding:12px;font-size:13px;line-height:1.7;margin-top:16px}
.vf-help .btn{display:block;margin:8px auto 0}
.vf-empty{text-align:center;padding:25px 10px}
.vf-order-card{display:flex;align-items:center;justify-content:space-between;gap:18px}
.vf-order-card p{color:#7c8ba1;font-size:13px;line-height:1.6;margin:6px 0 0}
.modal.vf-merchant-dialog{width:1080px;max-width:calc(100vw - 40px)}
.vf-order-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:0 0 20px;border-bottom:1px solid #e6edf6;margin-bottom:24px}
.vf-order-strip small{display:block;color:#8a97aa;font-size:11px;margin-bottom:5px}
.vf-order-strip strong{display:block;font-size:16px;color:#223552}
.vf-order-strip>span{font-size:13px;color:#7586a0}
.vf-merchant-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px}
.vf-section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.vf-section-title>span{font-size:11px;color:#3874e4;background:#edf3ff;border-radius:6px;padding:4px 6px;font-weight:700}
.vf-section-title h3{font-size:15px;margin:0;color:#243b60}
.vf-types{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:25px}
.vf-type{display:flex;align-items:center;justify-content:space-between;border:1px solid #e1e7f0;background:#fff;border-radius:9px;padding:12px;min-height:46px;font-size:13px;color:#576980;cursor:pointer;transition:border-color .15s,background .15s}
.vf-type i{font-style:normal;opacity:0;color:#2167f0}
.vf-type.is-selected{border-color:#377bff;background:#f1f6ff;color:#1657d0}
.vf-type.is-selected i{opacity:1}
.vf-config-number{max-width:180px;min-height:48px;font-size:24px;color:#1d61e6;font-weight:650}
.vf-config .textarea{min-height:90px}
.vf-preview{background:#f7f9fd;border:1px solid #e7edf6;border-radius:12px;padding:18px}
.vf-preview [data-vf-preview]{background:#fff;border-radius:12px;padding:22px 20px;box-shadow:0 6px 22px #24426e09}
.vf-preview .vf-buyer h2{font-size:23px;margin-top:16px}
.vf-preview .vf-subtitle{font-size:12px;margin-bottom:18px}
.vf-preview .vf-meta{padding:13px 12px;gap:10px}
.vf-preview .vf-meta>div+div{padding-left:12px}
.vf-preview .vf-meta strong{font-size:11px}
.vf-preview .vf-number{width:62px;height:62px;font-size:30px}
.vf-preview .vf-instruction{font-size:12px;line-height:1.8}
.vf-preview .vf-buttons .btn{font-size:12px;min-height:40px;padding:8px 10px}
.vf-preview .vf-note{font-size:11px;padding:10px}
.vf-preview-label{display:none}
.vf-receipt-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.vf-receipt-head h3{margin:0}
.vf-receipt>p{font-size:13px;color:#8492a8}
.vf-merchant-number{color:#69809d;font-size:13px;margin:14px 0}
.vf-merchant-number strong{display:inline-block;padding:7px 15px;margin-left:12px;border-radius:7px;background:#edf4ff;color:#1e63ea;font-size:22px}
.vf-receipt-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 10px}
.vf-secret{display:flex;align-items:center;gap:10px;border:1px solid #e1e8f2;background:#f9fbff;padding:12px;border-radius:8px}
.vf-secret code{font-size:20px;flex:1;overflow-wrap:anywhere}
.vf-warning{background:#fff6e5;color:#916523}
.od-assist #od-assist-actions{display:flex;flex-direction:column;gap:10px}
.od-refund #od-refund-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.verification-dialog :focus-visible{outline:3px solid #85adff;outline-offset:3px}
.vf-events{position:fixed;right:var(--sp-6);top:88px;z-index:calc(var(--z-modal) - 1);width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:var(--sp-3);pointer-events:none;max-height:calc(100vh - 112px);max-height:calc(100dvh - 112px);overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-2);margin-right:calc(-1 * var(--sp-2));scrollbar-width:thin}
.ops-admin:has(.verification-overlay) .vf-events{visibility:hidden}
.vf-event{--vf-event-tone:var(--brand-fg);--vf-event-tint:var(--brand-bg);position:relative;flex-shrink:0;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:0 2px 4px #0f172a04,0 8px 24px #0f172a12;pointer-events:auto;color:var(--text);animation:vf-notice-in .18s ease-out}
.vf-event.is-failed{--vf-event-tone:var(--warn-fg);--vf-event-tint:var(--warn-bg)}
.vf-event-chat .vf-event-order>span{flex-shrink:1;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.vf-event-chat .vf-event-content>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vf-event-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) 0}
.vf-event-icon{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:var(--r-sm);background:var(--vf-event-tint);color:var(--vf-event-tone)}
.vf-event-icon svg{width:20px;height:20px}
.vf-event-head>strong{font-size:15px;font-weight:650;line-height:1.5;min-width:0;flex:1}
.vf-event-content{min-width:0;padding:0 var(--sp-5)}
.vf-event-order{display:flex;align-items:baseline;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);color:var(--text-3);font-size:12px;line-height:1.6}
.vf-event-order>span{flex-shrink:0}
.vf-event-order>small{font:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.vf-event-content>p{font-size:13px;line-height:1.7;color:var(--text-2);margin:0 0 var(--sp-4);overflow-wrap:anywhere}
.vf-event-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 calc(var(--r-md) - 1px) calc(var(--r-md) - 1px)}
.vf-event-actions>.btn{min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-xs);font-size:13px;font-weight:550;white-space:nowrap}
.vf-event-actions>.btn-ghost{color:var(--text-2);border-color:transparent;background:transparent}
.vf-event-actions>.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}
.vf-event-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin:-6px -12px -6px 0;padding:0;color:var(--text-3);border:0;background:transparent;border-radius:var(--r-xs);cursor:pointer;transition:background .15s,color .15s}
.vf-event-close svg{width:16px;height:16px}
.vf-event-close:hover{background:var(--surface-hover);color:var(--text)}
.vf-event :focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@keyframes vf-notice-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes vf-enter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes vf-fade-in{from{background:transparent}to{background:var(--overlay)}}
@media(max-width:700px){
 .vf-buyer-dialog{max-width:calc(100vw - 24px);border-radius:16px}
 .vf-buyer-dialog .modal-body{padding:32px 20px 18px}
 .vf-buyer h2{font-size:26px;margin-top:18px}
 .vf-meta{grid-template-columns:1fr;gap:12px;padding:14px 16px}
 .vf-meta>div+div{border-left:0;border-top:1px solid #e0e7f1;padding:12px 0 0}
 .vf-meta span{display:inline;margin-right:10px}
 .vf-meta strong{display:inline;font-size:13px}
 .vf-buttons{flex-direction:column;gap:10px;margin-top:16px}
 .vf-buttons .btn{min-height:46px;flex:auto;font-size:15px}
 .vf-number-row{margin:22px 0 15px;gap:18px}
 .vf-instruction{font-size:14px;margin:16px 0}
 .vf-note{font-size:12px;margin:14px 0;padding:10px 12px}
 .vf-footer{margin-top:20px;font-size:11px}
 .vf-merchant-dialog{max-width:calc(100vw - 20px)}
 .verification-dialog .modal-head{padding:18px}
 .verification-dialog .modal-body{padding:20px 18px}
 .verification-dialog .modal-foot{padding:14px 18px}
 .vf-buyer-dialog .modal-body{padding:32px 20px 18px}
 .vf-merchant-grid{grid-template-columns:1fr;gap:20px}
 .vf-preview{display:none}
 .vf-order-strip{flex-direction:column;align-items:flex-start;gap:6px}
 .vf-type{padding:10px;font-size:12px}
 .vf-order-card{flex-direction:column;align-items:flex-start}
 .vf-receipt-actions .btn{flex:1 1 40%;min-height:44px}
 .vf-secret .btn,.vf-help .btn{min-height:44px}
 .vf-events{right:var(--sp-3);top:auto;bottom:calc(var(--sp-3) + env(safe-area-inset-bottom));width:min(360px,calc(100% - 24px));max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);margin-right:0;padding:var(--sp-1)}
}
@media(prefers-reduced-motion:reduce){.verification-dialog,.verification-overlay,.vf-event{animation:none;transition:none}.vf-type{transition:none}}
