/* shop-live.css —— 商城/订单/商品详情样式（配合 shop-live.js）*/
.eo-live-loading{padding:40px 0;text-align:center;color:var(--ink-3);font-size:13px;letter-spacing:.06em}
.eo-shop-skeleton{padding:8px 0 18px}
.eo-shop-skeleton-label{display:block;margin:0 0 12px;color:var(--ink-3);font:10px/1.4 var(--mono);letter-spacing:.08em}
.eo-shop-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.eo-shop-skeleton-grid i{min-height:220px;padding:14px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);background:var(--bg-1);overflow:hidden;position:relative}
.eo-shop-skeleton-grid i::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent);animation:eoSkelSweep 1.3s infinite}
.eo-shop-skeleton-grid b,.eo-shop-skeleton-grid em,.eo-shop-skeleton-grid strong{display:block;background:var(--bg-3);border-radius:2px}
.eo-shop-skeleton-grid b{height:92px}.eo-shop-skeleton-grid em{height:10px}.eo-shop-skeleton-grid em:nth-of-type(2){width:72%}.eo-shop-skeleton-grid strong{height:40px;margin-top:auto}
@keyframes eoSkelSweep{to{transform:translateX(100%)}}
@media(max-width:1023px){.eo-shop-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.eo-shop-skeleton-grid i{min-height:178px;padding:10px}.eo-shop-skeleton-grid b{height:68px}}
.dim{color:var(--ink-3)}

/* 钱包条 */
.eo-live-wallet{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--line);background:var(--bg-1);border-radius:12px;margin-bottom:22px}
.lw-lab{font-family:var(--mono,monospace);font-size:11px;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase}
.lw-coin{font-size:14px;color:var(--ink-1)}
.lw-coin b{color:var(--ink-0);font-size:16px;font-family:var(--mono,monospace)}
.lw-note{margin-left:auto;font-size:11px;color:var(--ink-3)}

/* 分区 */
.eo-live-sec{margin-bottom:34px}
.eo-live-secsub{font-size:12.5px;color:var(--ink-3);margin:4px 0 16px;line-height:1.6}

/* 商品卡补充：认证徽标 + 图 + 限购 */
.pc-cert-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.pc-cert{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.04em;color:#d9a441;border:1px solid rgba(217,164,65,.42);background:rgba(217,164,65,.09);padding:2px 8px;border-radius:100px}
.pc-cert-check{width:11px;height:11px;flex:0 0 auto;color:#e6c86b}
.pc-cert-no{color:var(--rust-3);border-color:rgba(200,120,90,.3);background:rgba(200,120,90,.08)}
.pc-limit{font-size:11px;color:var(--ink-3)}
.pc-img{margin:-4px 0 10px;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:var(--bg-2)}
.pc-img img{width:100%;height:100%;object-fit:cover;display:block}
.pc-actions{display:grid;grid-template-columns:44px 1fr;gap:9px;margin-top:10px}
.eo-live-card .pc-btn{width:100%;justify-content:center;margin-top:0}
.eo-cart-btn{
  height:42px;display:grid;place-items:center;border:1px solid var(--line-2);
  background:rgba(255,255,255,.025);color:var(--ink-1);border-radius:10px;
  transition:border-color .18s, color .18s, background .18s, transform .18s;
}
.eo-cart-btn svg{width:19px;height:19px}
.eo-cart-btn:not(:disabled):hover{border-color:var(--amber);color:var(--ink-0);background:rgba(214,170,69,.08);transform:translateY(-1px)}
.eo-cart-btn:disabled{opacity:.42;cursor:not-allowed}
.eo-live-cache-note{
  margin:-8px 0 14px;font-size:12px;color:var(--ink-2);font-family:var(--cn);
  border-left:2px solid var(--amber);padding-left:10px;
}

/* 订单 */
.eo-live-orders{display:flex;flex-direction:column;gap:12px}
.eo-live-order{border:1px solid var(--line);background:var(--bg-1);border-radius:12px;padding:16px 18px}
.ol-top{font-size:15px;color:var(--ink-0);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ol-badge{font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--line);padding:2px 8px;border-radius:100px}
.ol-st-pending_ship{color:var(--amber,#d9a441);border-color:rgba(217,164,65,.35)}
.ol-st-shipped{color:var(--rev,#c2693f);border-color:rgba(194,105,63,.35)}
.ol-st-completed{color:var(--green);border-color:var(--green-soft,rgba(120,200,150,.3))}
.ol-st-canceled,.ol-st-refunded{color:var(--ink-3)}
.ol-meta{font-size:12px;color:var(--ink-3);margin-top:7px}
.ol-track{margin-left:8px;color:var(--ink-2)}
.ol-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.eo-cart-list{display:flex;flex-direction:column;gap:10px}
.eo-cart-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;
  border:1px solid var(--line);background:var(--bg-1);border-radius:12px;padding:14px 16px;
}
.eo-cart-name{display:flex;flex-direction:column;gap:4px;min-width:0}
.eo-cart-name b{color:var(--ink-0);font-size:15px}
.eo-cart-name span{color:var(--ink-3);font-size:12px}
.eo-cart-price{font-family:var(--mono,monospace);color:var(--amber);white-space:nowrap}
.eo-cart-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.eo-cart-row{grid-template-columns:1fr}.eo-cart-acts{justify-content:flex-start}}

/* 商品详情 */
.eo-live-detail{margin-top:6px}
.pd-main{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:760px){.pd-main{grid-template-columns:minmax(0,420px) 1fr}}
.pd-img{border-radius:14px;overflow:hidden;aspect-ratio:1;background:var(--bg-2)}
.pd-img img{width:100%;height:100%;object-fit:cover;display:block}
.pd-name{font-size:26px;margin:8px 0 12px;color:var(--ink-0)}
.pd-desc{font-size:14px;line-height:1.8;color:var(--ink-1);margin-bottom:14px}
.pd-buy{display:flex;align-items:center;gap:16px;margin-top:18px;flex-wrap:wrap}
.pd-price{font-family:var(--mono,monospace);font-size:22px;color:var(--ink-0)}
.eo-cart-btn-detail{width:48px;flex:0 0 48px}
.eo-live-card:not(.eo-guardian) .pc-price-rmb{color:var(--ink-0);letter-spacing:.01em}
.pc-price-dirt{color:#b98943!important;text-shadow:0 0 18px rgba(185,137,67,.12)}
.pc-price-stone{color:#b9b7ad!important;text-shadow:0 0 18px rgba(185,183,173,.12)}
.pc-price-brick{color:#c2693f!important;text-shadow:0 0 18px rgba(194,105,63,.12)}
.pc-price-eto{color:#d6aa45!important;text-shadow:0 0 18px rgba(214,170,69,.14)}
.pd-reviews{margin-top:36px}
.pd-rev{border-top:1px solid var(--line);padding:14px 0}
.pd-rev-top{color:var(--gold,#d9a441);font-size:14px;margin-bottom:6px}
.pd-rev p{font-size:13.5px;line-height:1.7;color:var(--ink-1);margin:0 0 6px}

/* 地址选项 */
.eo-addr-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;cursor:pointer;font-size:13px;color:var(--ink-1)}
.eo-addr-opt input{margin-top:3px}
.eo-live-mh{font-size:17px;margin:0 0 4px;color:var(--ink-0)}
.eo-live-sum{cursor:pointer;color:var(--rev,#c2693f);font-size:13px}

/* 星级选择 */
.eo-star-pick{display:flex;gap:4px}
.eo-star{background:none;border:0;font-size:26px;line-height:1;color:var(--line-2,#444);cursor:pointer;padding:0}
.eo-star.is-on{color:var(--gold,#d9a441)}
.eo-live-link{background:none;border:0;color:var(--ink-3);font-size:11px;cursor:pointer;padding:0;text-decoration:underline}
.eo-live-link:hover{color:var(--rev,#c2693f)}

/* ── 钱包（wallet.html）── */
.eo-live-vaults{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:680px){.eo-live-vaults{grid-template-columns:1fr 1fr}}
.eo-live-vault{border:1px solid var(--line);background:var(--bg-1);border-radius:14px;padding:18px}
.eo-live-vault .vc-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.vc-coin{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:16px;background:var(--bg-2);color:var(--ink-0);font-family:var(--cn,inherit)}
.vc-coin.eto{background:linear-gradient(135deg,var(--rev,#c2693f),#7a3b22);color:#fff;font-family:var(--mono,monospace)}
.eo-live-vault .vc-name h3{margin:0;font-size:16px;color:var(--ink-0)}
.eo-live-vault .vc-tag{font-size:11px;color:var(--ink-3)}
.eo-live-vault .vc-balance{font-family:var(--mono,monospace);font-size:32px;color:var(--ink-0);margin:4px 0 12px}
.eo-live-vault .vc-meta{display:flex;flex-direction:column;gap:5px;font-size:12px;border-top:1px solid var(--line);padding-top:10px;margin-bottom:12px}
.eo-live-vault .vc-meta .k{color:var(--ink-3);margin-right:8px}
.eo-live-vault .vc-meta .v{color:var(--ink-1)}
.eo-live-vault .vc-action{width:100%;justify-content:center}
.vc-action-note{font-size:11px;color:var(--ink-3);text-align:center;padding:8px 0;border:1px dashed var(--line);border-radius:8px}
.eto-card{border-color:rgba(194,105,63,.35);background:linear-gradient(180deg,rgba(194,105,63,.06),transparent 60%),var(--bg-1)}
.eo-live-tx{display:flex;flex-direction:column;margin-top:8px}
.wtx-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);font-size:13px}
.wtx-reason{color:var(--ink-1);flex:1}
.wtx-amt{font-family:var(--mono,monospace);font-weight:600}
.wtx-amt.in{color:var(--green)}
.wtx-amt.out{color:var(--ink-2)}
.wtx-time{color:var(--ink-3);font-size:11px;min-width:140px;text-align:right}

/* ── 数字藏品（backpack.html）── */
.eo-coll-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:6px}
.eo-coll-item{border:1px solid var(--line);background:var(--bg-0);border-radius:10px;padding:14px 12px;text-align:center}
.eo-coll-name{font-size:13px;color:var(--ink-0);margin-bottom:6px}
.eo-coll-tag{font-size:10px;letter-spacing:.1em;color:var(--rev,#c2693f);text-transform:uppercase}

/* ── $ETO 导出（保护期）── */
.eo-eto-protect{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2);font-size:12.5px;color:var(--ink-1);line-height:1.6}
.eo-eto-protect ul{margin:6px 0;padding-left:18px;line-height:1.85}
.eo-wd-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.eo-wd{border:1px solid var(--line);background:var(--bg-1);border-radius:12px;padding:14px 16px}
.eo-wd-top{font-size:14px;color:var(--ink-0);display:flex;align-items:center;gap:8px}
.eo-wd-meta{font-size:12px;color:var(--ink-2);margin-top:6px}
.eo-wd-bar{height:6px;border-radius:100px;background:var(--bg-2);overflow:hidden;margin:8px 0}
.eo-wd-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--rev,#c2693f),#e08a5a)}

/* ── 悬赏接单人管理 ── */
.bt-takers{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.bt-taker{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink-1);padding:6px 0}

/* 商品评价"有用"按钮 */
.pd-rev-acts{display:flex;align-items:center;gap:14px;margin-top:6px}
.eo-live-helpful{font-family:var(--mono,monospace);font-size:11px;letter-spacing:.04em;padding:3px 12px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;border-radius:100px;transition:.15s}
.eo-live-helpful b{color:var(--ink-0)}
.eo-live-helpful:not(:disabled):hover{border-color:var(--rev,#c2693f);color:var(--ink-0)}
.eo-live-helpful.on{color:var(--green);border-color:var(--green-soft,rgba(120,200,150,.4))}
.eo-live-helpful.on b{color:var(--green)}

/* 商城卡收藏星标（独立类名，绕开 eo-launch.css 对 .pc-fav-slot 的 display:none） */
.eo-live-card .pc-head{justify-content:flex-start}
.eo-live-card .pc-cat{margin-right:auto}
.eo-live-fav{display:inline-flex;align-items:center;flex:0 0 auto}
.eo-live-fav .eo-fav-btn .lab{display:none}
.eo-live-fav .eo-fav-btn{padding:4px;gap:0;line-height:0}

/* 接单人行：私信 + 确认放款按钮组 */
.bt-taker-acts{display:inline-flex;align-items:center;gap:8px}

/* 守护者公益徽章：绿色边缘装饰 + 100% 角标 */
.product-card.eo-guardian{
  position:relative;
  border-color:var(--green,#5a9b6a);
  box-shadow:0 0 0 1px var(--green,#5a9b6a) inset, 0 10px 30px rgba(90,155,106,.10);
  background:linear-gradient(180deg, rgba(90,155,106,.06), rgba(90,155,106,0) 42%);
}
.product-card.eo-guardian .pc-name{color:var(--ink-0)}
.eo-guardian-badge{
  position:absolute;top:0;right:0;z-index:2;
  font-family:var(--mono,monospace);font-size:11px;font-weight:600;letter-spacing:.04em;
  color:#0b0f0c;background:var(--green,#5a9b6a);
  padding:3px 8px;border-bottom-left-radius:8px;
}

/* 守护者公益横幅（替代余额条）*/
.eo-guardian-banner{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin:0 0 24px;padding:16px 20px;border-radius:12px;
  border:1px solid var(--green,#5a9b6a);
  background:linear-gradient(110deg, rgba(90,155,106,.12), rgba(90,155,106,.02));
}
.eo-guardian-banner .egb-text{flex:1 1 320px;min-width:0}
.eo-guardian-banner .egb-title{
  font-family:var(--cn,sans-serif);font-size:16px;font-weight:600;color:var(--green,#5a9b6a);margin-bottom:6px;
}
.eo-guardian-banner .egb-desc{
  font-family:var(--cn,sans-serif);font-size:13px;line-height:1.7;color:var(--ink-1,#c7c7cd);margin:0;
}
.eo-guardian-banner .egb-cta{flex:0 0 auto}

/* ETO 道具箱 */
.eo-lootbox-card{
  border-color:rgba(214,170,69,.54);
  background:
    radial-gradient(circle at 72% 18%,rgba(214,170,69,.14),transparent 34%),
    linear-gradient(180deg,rgba(214,170,69,.055),transparent 58%),
    var(--bg-1);
}
.eo-lootbox-card::before{
  content:"";position:absolute;top:0;left:0;width:64px;height:2px;
  background:linear-gradient(90deg,#d6aa45,rgba(214,170,69,0));
}
.eo-loot-orbit{
  position:relative;width:92px;height:92px;margin:4px auto 2px;
  border:1px solid rgba(214,170,69,.34);border-radius:50%;
  background:radial-gradient(circle,rgba(214,170,69,.16),rgba(214,170,69,.02) 54%,transparent 62%);
}
.eo-loot-orbit i,.eo-loot-orbit b,.eo-loot-orbit em{
  position:absolute;inset:13px;border-radius:50%;border:1px solid rgba(214,170,69,.22);
  animation:eoLootOrbit 5.8s cubic-bezier(.2,.7,.15,1) infinite;
}
.eo-loot-orbit b{inset:24px;animation-duration:4.6s;animation-direction:reverse}
.eo-loot-orbit em{inset:36px;background:#d6aa45;border:0;box-shadow:0 0 18px rgba(214,170,69,.36);animation:eoLootCore 3.4s cubic-bezier(.2,.7,.15,1) infinite}
@keyframes eoLootOrbit{0%,100%{transform:rotate(0deg) scale(.96);opacity:.46}50%{transform:rotate(185deg) scale(1.04);opacity:.82}}
@keyframes eoLootCore{0%,100%{transform:scale(.78);opacity:.44}45%{transform:scale(1.05);opacity:.9}}
/* ── 宝箱图片 ── */
.eo-chest-card-art{display:block;width:120px;height:120px;margin:8px auto 12px;object-fit:contain;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.38));image-rendering:auto}
.eo-detail-chest{display:block;width:200px;height:200px;margin:auto;object-fit:contain;
  filter:drop-shadow(0 24px 36px rgba(0,0,0,.44));image-rendering:auto}
.pd-chest-img{display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(214,170,69,.15),transparent 48%),var(--bg-2)}
/* 开箱动画 —— 闭箱→开箱图片切换 */
.elo-chest{display:block;width:150px;height:150px;margin:0 auto;object-fit:contain;
  filter:drop-shadow(0 20px 32px rgba(0,0,0,.42));image-rendering:auto;
  transition:transform .3s ease}
.elo-chest.is-burst{animation:eloChestBurst .62s cubic-bezier(.2,.8,.22,1) forwards}
@keyframes eloChestBurst{
  0%{transform:scale(1);opacity:0}
  18%{transform:scale(1.08) translateY(-4px)}
  100%{transform:scale(1) translateY(0);opacity:1}
}
@keyframes eloRewardIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.eo-loot-mask{
  position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:22px;
  background:rgba(0,0,0,.72);backdrop-filter:blur(8px) saturate(1.05);
  opacity:0;transition:opacity .26s ease;
}
.eo-loot-mask.is-open{opacity:1}
.eo-loot-open{
  width:min(520px,100%);position:relative;padding:34px 28px 24px;
  border:1px solid rgba(214,170,69,.45);background:#101014;
  box-shadow:0 24px 80px rgba(0,0,0,.58);
  transform:translateY(12px) scale(.97);transition:transform .42s cubic-bezier(.16,.8,.18,1);
  overflow:hidden;
}
.eo-loot-mask.is-open .eo-loot-open{transform:translateY(0) scale(1)}
.elo-stage{position:relative;display:grid;place-items:center;min-height:190px;margin-bottom:4px}
.elo-rays{
  position:absolute;width:210px;height:210px;border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 10deg,rgba(214,170,69,.12) 10deg 18deg,transparent 18deg 32deg);
  opacity:.5;animation:eloRaySpin 11s linear infinite;
}
.elo-ready{text-align:center;margin:4px auto 16px;max-width:380px}
.elo-ready h3{margin:0 0 8px;font-size:22px;color:var(--ink-0)}
.elo-ready p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.7}
.eo-loot-open.is-opening .elo-chest{animation:eloChestBurst .62s cubic-bezier(.2,.8,.22,1) forwards}
.eo-loot-open.is-revealed .elo-rays{animation-duration:3.8s;opacity:.92}
.eo-loot-open.is-revealed .elo-card{animation:eloRewardIn .46s cubic-bezier(.16,1,.3,1) both}
@keyframes eloRaySpin{to{transform:rotate(360deg)}}
.elo-ring{position:relative;width:132px;height:132px;margin:0 auto 18px;border:1px solid rgba(214,170,69,.28);border-radius:50%}
.elo-ring i,.elo-ring b,.elo-ring em{
  position:absolute;border-radius:50%;border:1px solid var(--eo-rarity,#d6aa45);opacity:.42;
  animation:eoLootOrbit 4.8s cubic-bezier(.2,.7,.15,1) infinite;
}
.elo-ring i{inset:10px}.elo-ring b{inset:27px;animation-direction:reverse}.elo-ring em{inset:48px;background:var(--eo-rarity,#d6aa45);border:0;box-shadow:0 0 22px color-mix(in srgb,var(--eo-rarity,#d6aa45) 44%,transparent)}
.elo-k{text-align:center;font-family:var(--mono,monospace);font-size:10px;letter-spacing:.28em;color:var(--ink-3);margin-bottom:10px}
.elo-card{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.025);padding:18px 20px;text-align:center}
.elo-rarity{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.18em;color:var(--eo-rarity,#d6aa45)}
.elo-card strong{display:block;margin:8px 0 6px;font-size:22px;color:var(--ink-0);font-family:var(--cn,sans-serif)}
.elo-card p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.7}
.elo-card .eo-buff-line{justify-content:center;margin-top:12px}
.elo-actions{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap}
