/* 商城 V2：只扩展商城前台与商城管理页面 */
.shop-v2 { display: grid; gap: 18px; }
.shop-v2-hero {
  min-height: 260px;
  padding: clamp(28px,5vw,64px);
  align-items: end;
  color: #f8f3e9;
  border: 0;
  background:
    linear-gradient(90deg,rgba(26,39,32,.94),rgba(39,61,48,.82),rgba(39,61,48,.24)),
    url('/assets/guardian-wide.jpg') center 46%/cover no-repeat;
  box-shadow: 0 20px 60px rgba(32,44,36,.16);
}
.shop-v2-hero .shop-kicker { color: #d7bd85; }
.shop-v2-hero h1 { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.18); }
.shop-v2-hero p { max-width: 560px; color: rgba(255,255,255,.72); }
.shop-v2-hero .quiet-action {
  min-height: 40px;
  color: #fff;
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
}
.shop-v2-hero .shop-cart-button {
  color: #24382d;
  background: #f2e5c8;
  border-color: #f2e5c8;
}
.shop-service-strip {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border: 1px solid var(--line);
  background: var(--surface);
}
.shop-service-strip span { padding: 17px 22px; border-right: 1px solid var(--line); }
.shop-service-strip span:last-child { border-right: 0; }
.shop-service-strip b,.shop-service-strip small { display: block; }
.shop-service-strip b { color: var(--ink); font: 600 14px var(--serif); letter-spacing: .08em; }
.shop-service-strip small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.shop-v2 .shop-category-bar { padding: 17px 3px 10px; }
.shop-v2 .product-card { transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.shop-v2 .product-card:hover { transform: translateY(-3px); border-color: rgba(116,83,45,.28); box-shadow: 0 16px 38px rgba(55,42,27,.08); }
.shop-v2 .product-image { height: 270px; }
.shop-v2 .product-image img,
.product-detail-image img,
.admin-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shop-v2 .product-card:first-child .product-image img { object-position: center 58%; }
.shop-v2 .product-foot > div { display: grid; gap: 4px; }
.shop-v2 .product-foot small { color: var(--muted); font-size: 9px; }
.shop-choice-portal { max-width:1100px; margin:0 auto; }
.shop-choice-portal .portal-head { max-width:720px; }
.shop-choice-portal .portal-card { text-align:left; }
.shop-choice-portal .portal-index { display:grid; place-items:center; width:52px; height:52px; border:1px solid var(--line); border-radius:50%; font-size:18px; }
.shop-choice-portal .consultation-entry:hover .portal-index { color:#fff; background:var(--cinnabar); border-color:var(--cinnabar); }
.shop-choice-portal .shop-entry:hover .portal-index { color:#fff; background:var(--pine); border-color:var(--pine); }
.cart-payment-note { display:grid; gap:4px; margin:12px 0 15px; padding:12px; border-left:2px solid var(--cinnabar); background:rgba(162,55,43,.05); }
.cart-payment-note b { color:var(--cinnabar); font-size:12px; }
.cart-payment-note span { color:var(--muted); font-size:10px; }
.checkout-contact-notice { margin:5px 0 14px; padding:13px; border:1px solid var(--line); background:var(--surface-soft); }
.checkout-contact-notice b { color:var(--cinnabar); font-size:12px; }
.checkout-contact-notice p { margin:6px 0 0 !important; }
.checkout-address-select { margin-bottom:3px; }
.checkout-address-select select { width:100%; min-height:42px; padding:8px 10px; border:1px solid var(--line); background:#fff; }
.checkout-address-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.save-address-check { display:flex !important; grid-template-columns:auto 1fr; align-items:center; gap:8px; color:var(--ink-2) !important; }
.save-address-check input { width:auto !important; min-height:0 !important; }
.address-book-modal { width:min(760px,100%); }
.address-book-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.address-book-head h2 { margin:7px 0 0; }
.address-book-list { display:grid; gap:10px; margin-top:18px; }
.address-card { padding:15px; border:1px solid var(--line); background:var(--surface); }
.address-card.default { border-color:rgba(49,93,71,.45); box-shadow:inset 3px 0 0 var(--pine); }
.address-card header { display:flex; align-items:center; gap:10px; }
.address-card header span { color:var(--muted); font-size:11px; }
.address-card header em { margin-left:auto; padding:3px 8px; color:var(--pine); background:rgba(49,93,71,.08); font-size:9px; font-style:normal; }
.address-card p { margin:11px 0 !important; color:var(--ink-2) !important; }
.address-card footer { display:flex; justify-content:flex-end; gap:7px; }
.address-card footer button { padding:5px 9px; color:var(--ink); background:transparent; border:1px solid var(--line); }
.address-card footer .danger-link { color:var(--danger); }
.address-form-modal { width:min(560px,100%); }
.address-form-modal form { display:grid; gap:12px; }
.address-form-modal label { display:grid; gap:6px; color:var(--ink-2); font-size:11px; }
.address-form-modal input,.address-form-modal textarea { width:100%; padding:10px; border:1px solid var(--line); background:#fff; }
.address-form-modal textarea { min-height:90px; resize:vertical; }
.order-contact-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.shop-service-modal { width:min(620px,100%); }
.service-order-number { display:flex; justify-content:space-between; gap:12px; margin:16px 0; padding:13px; background:var(--surface-soft); }
.service-order-number span { color:var(--muted); font-size:10px; }
.service-steps { display:grid; gap:8px; margin-top:15px; padding:15px; border:1px solid var(--line); }
.service-steps span { color:var(--ink-2); font-size:11px; }
.service-config-tip { color:var(--muted) !important; font-size:10px !important; }
.my-orders-modal { width: min(720px,100%); }
.my-order-card { margin-top: 10px; padding: 15px; border: 1px solid var(--line); background: var(--surface); }
.my-order-card header,.my-order-card footer { display:flex; justify-content:space-between; gap:16px; }
.my-order-card header span { color: var(--pine); font-size: 11px; }
.my-order-card > div { margin: 13px 0; color: var(--ink-2); font-size: 12px; }
.my-order-card footer small { color: var(--muted); }
.my-order-card footer strong { color: var(--cinnabar); }
.my-order-shipping { display:grid; grid-template-columns:auto 1fr auto auto; gap:8px; align-items:center; margin:12px 0; padding:12px; background:var(--surface-soft); }
.my-order-shipping span { color:var(--muted); font-size:10px; }
.my-order-shipping code { color:var(--ink); font-family:inherit; }
.my-order-shipping button { padding:5px 9px; color:var(--pine); background:transparent; border:1px solid var(--line); }
.my-order-waiting { margin:12px 0 !important; color:var(--muted) !important; font-size:10px !important; }

.admin-shop-dashboard { display:grid; gap:18px; }
.admin-shop-title {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.admin-shop-title h2 { margin:7px 0 4px; font:600 30px var(--serif); letter-spacing:.08em; }
.admin-shop-title p { margin:0; color:var(--muted); font-size:11px; }
.admin-shop-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.admin-shop-metrics article { min-width:0; padding:17px; border:1px solid var(--line); background:var(--surface); }
.admin-shop-metrics span,.admin-shop-metrics small { display:block; color:var(--muted); font-size:10px; }
.admin-shop-metrics strong { display:block; margin:11px 0 7px; color:var(--ink); font:600 25px var(--serif); }
.admin-shop-switch { display:flex; gap:22px; border-bottom:1px solid var(--line); }
.admin-shop-switch button { padding:12px 2px; color:var(--muted); background:transparent; border-bottom:2px solid transparent; }
.admin-shop-switch button.active { color:var(--ink); border-bottom-color:var(--cinnabar); }
.admin-shop-switch button b { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:5px; border-radius:99px; color:#fff; background:var(--cinnabar); font-size:9px; }
.admin-product-main { min-width:0; display:grid; gap:5px; }
.admin-product-main b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-order-card { border-radius:2px; }
.admin-order-progress { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.admin-order-current { display:grid; gap:4px; }
.admin-order-current span,.admin-order-current small { color:var(--muted); font-size:10px; }
.admin-order-current b { color:var(--pine); font-size:14px; }
.admin-order-quick-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.admin-order-quick-actions button { min-height:32px; padding:0 11px; border:1px solid var(--line); background:transparent; color:var(--ink); }
.admin-order-quick-actions .danger-link { color:var(--danger); }
.admin-shipping-form { display:grid; grid-template-columns:1fr 1.5fr auto; gap:9px; align-items:end; margin-top:13px; padding:13px; background:var(--surface-soft); }
.admin-shipping-form label { display:grid; gap:5px; color:var(--muted); font-size:10px; }
.admin-shipping-form input,.admin-shipping-form select { width:100%; min-height:38px; padding:7px 9px; border:1px solid var(--line); background:#fff; }
.admin-shipping-form .primary-action { min-height:38px; white-space:nowrap; }
.admin-shipping-summary { display:flex; gap:10px; align-items:center; margin-top:13px; padding:12px; background:var(--surface-soft); font-size:11px; }
.admin-shipping-summary span { color:var(--muted); }
.admin-shipping-summary code { font-family:inherit; }

@media(max-width:900px){
  .admin-shop-metrics { grid-template-columns:1fr 1fr; }
  .shop-service-strip { grid-template-columns:1fr; }
  .shop-service-strip span { border-right:0; border-bottom:1px solid var(--line); }
  .shop-service-strip span:last-child { border-bottom:0; }
}
@media(max-width:600px){
  .shop-v2-hero { min-height:300px; padding:26px 20px; }
  .shop-v2-hero .shop-hero-actions { display:grid; grid-template-columns:1fr 1fr; }
  .shop-v2 .product-image { height:240px; }
  .admin-shop-title { align-items:flex-start; flex-direction:column; }
  .admin-shop-metrics { grid-template-columns:1fr 1fr; }
  .admin-shop-metrics article { padding:14px; }
  .admin-shop-metrics strong { font-size:20px; }
  .admin-shipping-form { grid-template-columns:1fr; }
  .admin-order-progress { flex-direction:column; }
  .admin-order-quick-actions { justify-content:flex-start; }
  .my-order-shipping { grid-template-columns:1fr; }
  .order-contact-actions { display:grid; }
  .checkout-address-grid { grid-template-columns:1fr; }
  .address-book-head { align-items:flex-start; flex-direction:column; }
}
