/* ---- 购物车布局 ---- */
.nq-cart { display: flex; height: calc(100vh - 50px); overflow: hidden; margin: -24px 0 -48px; }

/* ---- 左侧菜单 ---- */
.nq-cart-side { width: 240px; min-width: 240px; overflow-y: auto; border-right: 1px solid var(--nq-border-1); background: var(--nq-bg-1); }
.nq-cart-side::-webkit-scrollbar { width: 4px; }
.nq-cart-side::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; }
.nq-cart-side:hover::-webkit-scrollbar-thumb { background: var(--nq-fill-4); }

/* ---- 搜索框 ---- */
.nq-cart-search { padding: 16px; }
.nq-cart-search .form-control { border-radius: 20px; font-size: var(--nq-font-sm); height: 36px; }
.nq-cart-search .form-control:focus { box-shadow: none; border-color: var(--nq-primary); }

/* ---- 菜单分组 ---- */
.nq-cart-menu { padding: 4px 0 16px; }
.nq-cart-nav-item { display: block; }
.nq-cart-nav-link { display: flex; align-items: center; gap: 8px; padding: 0 12px; height: 36px; font-size: var(--nq-font-sm); color: var(--nq-text-2); text-decoration: none; cursor: pointer; border-radius: 4px; margin: 4px 8px; transition: background .15s, color .15s; white-space: nowrap; overflow: hidden; }
.nq-cart-nav-link span { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.nq-cart-nav-link:hover { background: var(--nq-fill-1); color: var(--nq-text-1); text-decoration: none; }
.nq-cart-nav-link.active { background: var(--nq-primary-light); color: var(--nq-primary); }
.nq-cart-nav-arrow { font-size: 16px; flex-shrink: 0; color: var(--nq-text-4); transition: transform .2s; margin-left: auto; }
.nq-cart-nav-group.open > .nq-cart-nav-link .nq-cart-nav-arrow { transform: rotate(90deg); color: var(--nq-primary); }
.nq-cart-nav-sub { display: none; }
.nq-cart-nav-group.open > .nq-cart-nav-sub { display: block; }
.nq-cart-nav-sub-link { padding: 0 8px 0 16px; height: 34px; font-size: var(--nq-font-sm); gap: 4px; margin: 2px 8px; }
.nq-cart-nav-link .nq-cart-nav-flag { flex: 0 0 auto; overflow: visible; font-size: 14px; line-height: 1; }
.nq-cart-nav-link .nq-cart-nav-tag { flex: 0 0 auto; overflow: visible; padding: 0 4px; height: 16px; line-height: 16px; background: var(--nq-danger); color: var(--nq-bg-1); font-size: 9px; font-weight: 400; white-space: nowrap; letter-spacing: 0; }
.nq-cart-nav-group-toggle { font-weight: 500; font-size: var(--nq-font-xs); color: var(--nq-text-3); letter-spacing: 0.5px; }
.nq-cart-nav-group.active > .nq-cart-nav-group-toggle { color: var(--nq-primary); position: relative; }
.nq-cart-nav-group.active > .nq-cart-nav-group-toggle .nq-cart-nav-arrow { color: var(--nq-primary); }
.nq-cart-nav-group.active > .nq-cart-nav-group-toggle::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 16px; border-radius: 0 3px 3px 0; background: var(--nq-primary); }

/* ---- 登录提示 ---- */
.nq-cart-login { display: flex; align-items: center; gap: 12px; background: var(--nq-primary-light); border: 1px solid rgba(var(--primary-rgb), 0.15); border-radius: var(--nq-radius); padding: 12px 16px; margin-bottom: 16px; }
.nq-cart-login-icon { font-size: 40px; color: var(--nq-primary); line-height: 1; }
.nq-cart-login-text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.nq-cart-login-title { font-size: var(--nq-font-md); color: var(--nq-text-1); font-weight: 500; }
.nq-cart-login-desc { font-size: var(--nq-font-xs); color: var(--nq-text-3); }
.nq-cart-login-btn { white-space: nowrap; display: inline-flex; align-items: center; }
.nq-cart-login-arrow { width: 0; opacity: 0; transition: width 0.2s, opacity 0.2s; overflow: hidden; font-size: 14px; line-height: 1; }
.nq-cart-login-btn:hover .nq-cart-login-arrow { width: 16px; opacity: 1; }

/* ---- 分类提示条 ---- */
.nq-cart-notice-bar { display: flex; align-items: flex-start; gap: 8px; padding: 10px 16px; border-radius: var(--nq-radius); margin-bottom: 16px; font-size: var(--nq-font-md); line-height: 22px; }
.nq-cart-notice-bar i { font-size: 16px; flex-shrink: 0; height: 22px; display: flex; align-items: center; }
.nq-cart-notice-bar--info { background: rgba(var(--arcoblue-6), 0.06); border: 1px solid rgba(var(--arcoblue-6), 0.2); color: rgb(var(--arcoblue-6)); }
.nq-cart-notice-bar--warning { background: var(--nq-warning-light); border: 1px solid var(--nq-warning); color: var(--nq-warning); }
.nq-cart-notice-bar--error { background: var(--nq-danger-light); border: 1px solid var(--nq-danger); color: var(--nq-danger); }

/* ---- 服务须知 ---- */
.nq-cart-notice { margin-top: 24px; background: var(--nq-bg-1); border: 1px solid var(--nq-warning); border-radius: var(--nq-radius); overflow: hidden; }
.nq-cart-notice-header { display: flex; align-items: center; gap: 6px; padding: 10px 20px; font-size: var(--nq-font-md); font-weight: 500; color: var(--nq-warning); background: var(--nq-warning-light); }
.nq-cart-notice-header i { font-size: 16px; }
.nq-cart-notice-body { padding: 12px 20px; font-size: 14px; color: var(--nq-text-1); line-height: 1.8; }
.nq-cart-notice-body a { color: var(--nq-primary); }

/* ---- 右侧产品区 ---- */
.nq-cart-main { flex: 1; overflow-y: auto; padding: 20px 24px; background: var(--nq-bg-2); }
.nq-cart-main::-webkit-scrollbar { width: 6px; }
.nq-cart-main::-webkit-scrollbar-thumb { background: transparent; border-radius: 6px; }
.nq-cart-main:hover::-webkit-scrollbar-thumb { background: var(--nq-fill-4); }

/* ---- 商品组标题 ---- */
.nq-cart-group-heading { display: flex; align-items: center; gap: 4px; padding: 12px 16px; margin-bottom: 16px; background: var(--nq-primary-light); border: 1px solid rgba(var(--primary-rgb), 0.15); border-radius: var(--nq-radius); font-size: 14px; }
.nq-cart-group-heading-icon { color: var(--nq-primary); font-size: 14px; }
.nq-cart-group-heading-label { color: var(--nq-text-1); }
.nq-cart-group-heading-name { color: var(--nq-text-1); }
.nq-cart-group-heading-tagline { color: var(--nq-text-2); font-weight: 400; margin-left: 4px; font-size: var(--nq-font-sm); }

/* ---- 产品网格 ---- */
.nq-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }

/* ---- 产品卡片 ---- */
.nq-product-card { background: var(--nq-bg-1); border-radius: var(--nq-radius); border: 1px solid var(--nq-border-1); transition: all var(--nq-transition); display: flex; flex-direction: column; overflow: hidden; position: relative; }
.nq-product-card::before { content: ''; position: absolute; top: 0; right: 0; width: 100%; height: 120px; background: url('https://cloudcache.tencentcs.cn/qcloud/ui/activity-v2/build/LatestActivity/images/latest_card_bg_type1.png') no-repeat right top / auto 100%; mask-image: linear-gradient(to bottom, #000 40%, transparent); -webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent); pointer-events: none; z-index: 0; }
.nq-product-card > * { position: relative; z-index: 1; }
.nq-product-card:hover { box-shadow: var(--nq-shadow-2); border-color: var(--nq-primary); }
.nq-product-header { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nq-product-name { margin: 0; font-size: var(--nq-font-lg); font-weight: 600; color: var(--nq-text-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.nq-product-stock { font-size: 11px; padding: 2px 8px; white-space: nowrap; color: var(--nq-bg-1); }
.nq-product-stock.in-stock { background: var(--nq-success); }
.nq-product-stock.low-stock { background: var(--nq-warning); }
.nq-product-stock.out-stock { background: var(--nq-danger); }
.nq-product-soldout { opacity: 0.6; }
.nq-product-soldout:hover { transform: none; box-shadow: none; }
.nq-product-desc { padding: 16px 20px; flex: 1; }
.nq-product-footer { padding: 0 20px 20px; }
.nq-product-pricing { margin-bottom: 12px; }
.nq-price-current { display: block; font-size: 24px; font-weight: 600; color: var(--nq-danger); }
.nq-price-current small { font-size: 12px; font-weight: 400; color: var(--nq-text-3); }
.nq-price-original { display: inline-block; font-size: var(--nq-font-xs); color: var(--nq-text-4); text-decoration: line-through; margin-left: 4px; }
.nq-price-trial { display: block; font-size: 11px; color: var(--nq-warning); margin-top: 4px; }
.nq-product-footer .btn-primary { position: relative; overflow: hidden; transition: all 0.3s; }
.nq-product-footer .btn-primary::after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(255,255,255,0.5); opacity: 0; border-radius: 100%; transform: scale(1) translate(-50%); transform-origin: 50% 50%; }
.nq-product-footer .btn-primary:hover::after { animation: nq-ripple 1s ease-out; }
.nq-product-footer .btn-primary:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.1); }
@keyframes nq-ripple { 0% { transform: scale(0); opacity: 0.5; } 20% { transform: scale(25); opacity: 0.5; } 100% { opacity: 0; transform: scale(40); } }
.nq-btn-soldout { background: var(--nq-fill-2); color: var(--nq-text-3); border: none; cursor: not-allowed; }

/* ---- 骨架屏 ---- */
.nq-product-skeleton { display: none; }
.nq-product-skeleton.show { display: block; }
.nq-skeleton-card { background: var(--nq-bg-1); border-radius: var(--nq-radius); border: 1px solid var(--nq-border-1); display: flex; flex-direction: column; overflow: hidden; }
.nq-sk { background: linear-gradient(90deg, var(--nq-fill-2) 25%, var(--nq-fill-1) 50%, var(--nq-fill-2) 75%); background-size: 200% 100%; border-radius: 4px; animation: nq-sk-shimmer 1.5s infinite; }
/* 头部：名称 + 库存标签 */
.nq-sk-header { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nq-sk-name { height: 18px; width: 45%; border-radius: 4px; }
.nq-sk-stock { height: 16px; width: 52px; border-radius: 10px; flex-shrink: 0; }
/* 描述区 */
.nq-sk-body { padding: 0 20px; flex: 1; display: flex; flex-direction: column; gap: 8px; min-height: 60px; }
.nq-sk-line { height: 13px; width: 100%; border-radius: 3px; }
.nq-sk-line.w75 { width: 75%; }
.nq-sk-line.w60 { width: 60%; }
.nq-sk-line.w50 { width: 50%; }
/* 底部：价格 + 按钮 */
.nq-sk-footer { padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.nq-sk-price { height: 24px; width: 35%; border-radius: 4px; }
.nq-sk-price-sub { height: 12px; width: 22%; border-radius: 3px; }
.nq-sk-btn { height: 36px; width: 100%; border-radius: var(--nq-radius); margin-top: 4px; }
@keyframes nq-sk-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ---- 空状态 ---- */
.nq-cart-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; }
.nq-cart-empty-inner { background: var(--nq-bg-1); border-radius: var(--nq-radius); padding: 60px 0; text-align: center; width: 100%; }
.nq-cart-empty-inner img { width: 120px; margin-bottom: 12px; }
.nq-cart-empty-text { font-size: 13px; color: var(--nq-text-3); }

/* ============================================
   产品配置页 nq-productconfig-*
   ============================================ */

/* ---- 配置页 nq-cart-main 覆盖 ---- */
.nq-cart-main.nq-cart-main--config { padding: 0; overflow: hidden; overflow-y: hidden; display: flex; flex-direction: column; }
.nq-cart-main--config .configoption_form { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* ---- 整体布局 ---- */
.nq-productconfig-wrap { display: flex; gap: 16px; margin: 20px 24px; flex: 1; min-height: 0; }
.nq-productconfig { flex: 1; display: flex; flex-direction: column; min-height: 0; background: var(--nq-bg-1); border: 1px solid var(--nq-fill-2); border-radius: var(--nq-radius); overflow: hidden; }

/* ---- 推荐产品 ---- */
.nq-cart-recommend { width: 350px; flex-shrink: 0; overflow-y: auto !important; overflow-x: hidden !important; padding-bottom: 16px; scrollbar-width: none !important; -ms-overflow-style: none !important; }
.nq-cart-recommend::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
.nq-cart-recommend-list { display: flex; flex-direction: column; gap: 10px; }

/* ---- 配置区卡片 ---- */
.nq-productconfig-main { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* ---- 卡片头部（固定） ---- */
.nq-productconfig-header { padding: 12px 24px; border-bottom: 1px solid var(--nq-fill-2); display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.nq-productconfig-back { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--nq-radius); color: var(--nq-text-2); font-size: 18px; transition: all var(--nq-transition); flex-shrink: 0; }
.nq-productconfig-back:hover { background: var(--nq-fill-2); color: var(--nq-primary); text-decoration: none; }
.nq-productconfig-title { margin: 0; font-size: 15px; font-weight: 500; color: var(--nq-text-1); }

/* ---- 卡片主体（独立滚动） ---- */
.nq-productconfig-body { padding: 8px 0 16px; flex: 1; overflow-y: auto; }
.nq-productconfig-body::-webkit-scrollbar { width: 4px; }
.nq-productconfig-body::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; }
.nq-productconfig-body:hover::-webkit-scrollbar-thumb { background: var(--nq-fill-4); }

/* ---- 配置行 ---- */
.nq-productconfig-row { display: flex; align-items: flex-start; padding: 10px 24px; }

/* ---- 标签 ---- */
body.nq .nq-productconfig label { font-size: var(--nq-font-sm); }
label.nq-productconfig-label { width: 120px; min-width: 120px; height: 32px; line-height: 1; font-size: var(--nq-font-md); color: var(--nq-text-2); font-weight: 400; display: flex; align-items: center; gap: 4px; white-space: nowrap; margin-bottom: 0; }
.nq-productconfig-tip { color: var(--nq-primary); cursor: help; font-size: 15px; line-height: 1; }

/* ---- 产品型号选择 ---- */
.nq-spec-group { display: flex; flex-wrap: wrap; gap: 8px; }
.nq-spec-item { display: inline-flex; align-items: center; padding: 6px 16px; background: var(--nq-fill-2); border: 1px solid transparent; border-radius: var(--nq-radius); font-size: var(--nq-font-sm); color: var(--nq-text-1); cursor: pointer; transition: all var(--nq-transition); text-decoration: none; white-space: nowrap; }
.nq-spec-item:hover { background: var(--nq-fill-3); color: var(--nq-text-1) !important; text-decoration: none !important; }
.nq-spec-item.active { background: rgba(var(--arcoblue-6), 0.08); border-color: rgb(var(--arcoblue-6)); color: rgb(var(--arcoblue-6)); font-weight: 500; }
.nq-spec-item.active:hover { background: rgba(var(--arcoblue-6), 0.12); color: rgb(var(--arcoblue-6)) !important; }
.nq-spec-hint { margin-top: 8px; font-size: var(--nq-font-xs); color: var(--nq-text-3); display: flex; align-items: center; gap: 4px; }
.nq-spec-hint i { font-size: 14px; color: var(--nq-primary); }

/* ---- 字段区 ---- */
.nq-productconfig-field { flex: 1; min-width: 0; }
.nq-productconfig-field select.form-control { max-width: 280px; }
.nq-productconfig-field textarea.form-control { max-width: 400px; }
.nq-productconfig-field input.form-control:not(.configoption_range_val) { max-width: 280px; }

/* ---- 复选框 ---- */
.nq-productconfig-checkbox { margin-bottom: 4px; }

/* ---- 操作系统卡片 ---- */
.nq-productconfig-os-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.nq-productconfig-os-card { width: 150px; border: 1px solid var(--nq-fill-2); border-radius: var(--nq-radius); overflow: visible; transition: all 0.2s; display: flex; flex-direction: column; }
.nq-productconfig-os-card:hover { border-color: var(--nq-primary); }
.nq-productconfig-os-card.active { border-color: var(--nq-primary); }
.nq-productconfig-os-header { display: flex; align-items: center; gap: 8px; padding: 10px 12px; cursor: pointer; background: var(--nq-fill-1); border-bottom: 1px solid var(--nq-fill-2); transition: background 0.2s; }
.nq-productconfig-os-card.active .nq-productconfig-os-header { background: var(--nq-primary-light); }
.nq-productconfig-os-card:not(.active):hover .nq-productconfig-os-header { background: var(--nq-bg-1); }
.nq-productconfig-os-icon { width: 18px; height: 18px; object-fit: contain; flex-shrink: 0; }
.nq-productconfig-os-card:not(.active) .nq-productconfig-os-icon { filter: grayscale(100%) opacity(0.6); }
.nq-productconfig-os-card:not(.active):hover .nq-productconfig-os-icon { filter: none; }
.nq-productconfig-os-name { font-size: var(--nq-font-sm); color: var(--nq-text-1); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nq-productconfig-os-card.active .nq-productconfig-os-name { color: var(--nq-primary); }
/* 版本下拉 */
.nq-productconfig-os-select { position: relative; }
.nq-productconfig-os-trigger { display: flex; align-items: center; justify-content: space-between; padding: 6px 12px; background: var(--nq-bg-1); cursor: pointer; height: 30px; transition: background 0.2s, color 0.2s; font-size: var(--nq-font-xs); color: var(--nq-text-1); }
.nq-productconfig-os-card:not(.active) .nq-productconfig-os-trigger { background: var(--nq-fill-1); color: var(--nq-text-4); }
.nq-productconfig-os-card:not(.active):hover .nq-productconfig-os-trigger { background: var(--nq-bg-1); color: var(--nq-text-2); }
.nq-productconfig-os-trigger i { font-size: 14px; transition: transform 0.2s; flex-shrink: 0; }
.nq-productconfig-os-select.open .nq-productconfig-os-trigger i { transform: rotate(180deg); }
.nq-productconfig-os-trigger-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nq-productconfig-os-dropdown { position: absolute; top: 100%; left: -1px; right: -1px; background: var(--nq-bg-1); border: 1px solid var(--nq-fill-2); border-top: none; box-shadow: var(--nq-shadow-2); transform-origin: top; transform: scaleY(0); opacity: 0; transition: transform 0.2s, opacity 0.15s; z-index: 100; max-height: 180px; overflow-y: auto; border-radius: 0 0 var(--nq-radius) var(--nq-radius); }
.nq-productconfig-os-select.open .nq-productconfig-os-dropdown { transform: scaleY(1); opacity: 1; z-index: 999; }
.nq-productconfig-os-option { padding: 6px 12px; cursor: pointer; font-size: var(--nq-font-xs); color: var(--nq-text-2); transition: background 0.15s; }
.nq-productconfig-os-option:hover { background: var(--nq-primary-light); }
.nq-productconfig-os-option.active { background: var(--nq-primary-light); color: var(--nq-primary); }
.nq-productconfig-os-card.disabled { opacity: 0.55; pointer-events: none; }
.nq-productconfig-os-option.nq-os-option-disabled { opacity: 0.45; pointer-events: none; cursor: not-allowed; }
.nq-productconfig-os-option.nq-os-option-disabled:hover { background: transparent; }
.nq-productconfig-os-dropdown::-webkit-scrollbar { width: 4px; }
.nq-productconfig-os-dropdown::-webkit-scrollbar-thumb { background: var(--nq-fill-4); border-radius: 4px; }
@media (max-width: 480px) { .nq-productconfig-os-card { width: 100%; } }

/* ---- 滑块 ---- */
.nq-productconfig-slider { display: flex; align-items: center; gap: 10px; position: relative; flex-wrap: wrap; max-width: 680px; }
.nq-productconfig-slider .configoption_range { flex: 1; min-width: 120px; }
.nq-productconfig-slider-min, .nq-productconfig-slider-max { font-size: var(--nq-font-xs); color: var(--nq-text-4); white-space: nowrap; flex-shrink: 0; }
.nq-productconfig-unit { font-size: var(--nq-font-xs); color: var(--nq-text-3); white-space: nowrap; }
.range_none { position: absolute; height: 2px; display: block; background: var(--nq-fill-3); cursor: not-allowed; }

/* ---- 步进输入框 ---- */
.nq-productconfig-stepper { display: inline-flex; align-items: center; border: 1px solid var(--nq-fill-2); border-radius: var(--nq-radius); overflow: hidden; background: var(--nq-fill-2); flex-shrink: 0; }
.nq-productconfig-stepper .configoption_range_val { width: 52px !important; height: 28px; text-align: center; border: none; background: var(--nq-bg-1); border-radius: 0; font-size: var(--nq-font-sm); padding: 0; }
.nq-productconfig-stepper .configoption_range_val:focus { background: var(--nq-bg-1); border-color: transparent; box-shadow: none; }
.nq-productconfig-stepper-btn { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: none; background: transparent; color: var(--nq-text-2); font-size: 14px; cursor: pointer; transition: all var(--nq-transition); user-select: none; }
.nq-productconfig-stepper-btn:hover { background: var(--nq-fill-3); color: var(--nq-primary); }
.nq-productconfig-stepper-btn:active { background: var(--nq-fill-4); }


/* ---- 周期选择 ---- */
.nq-productconfig-cycles { display: flex; flex-wrap: wrap; gap: 6px; }
.nq-productconfig-cycle { position: relative; display: inline-flex; align-items: center; padding: 5px 16px; background: var(--nq-fill-2); border: 1px solid transparent; border-radius: var(--nq-radius); font-size: var(--nq-font-xs); color: var(--nq-text-1); cursor: pointer; transition: all var(--nq-transition); }
.nq-productconfig-cycle:hover { background: var(--nq-fill-3); }
.nq-productconfig-cycle.active { background: var(--nq-primary-light); color: var(--nq-primary); border-color: var(--nq-primary); }
.nq-productconfig-discount { position: absolute; top: -8px; right: -4px; padding: 0 5px; height: 16px; line-height: 16px; background: var(--nq-danger); border-radius: 8px 8px 8px 0; color: var(--nq-bg-1); font-size: 10px; white-space: nowrap; }

/* ---- 密码 ---- */
.nq-productconfig-password { display: flex; align-items: center; max-width: 280px; position: relative; }
.nq-productconfig-password .form-control { padding-right: 56px; }
.nq-productconfig-password-actions { position: absolute; right: 8px; display: flex; gap: 4px; }
.nq-productconfig-password-icon { font-size: 15px; color: var(--nq-text-4); cursor: pointer; transition: color var(--nq-transition); }
.nq-productconfig-password-icon:hover { color: var(--nq-primary); }
.nq-productconfig-error { color: var(--nq-danger); font-size: var(--nq-font-xs); margin-top: 4px; display: none; }

/* ---- 底部订单栏 ---- */
.nq-productconfig-footer { flex-shrink: 0; background: var(--nq-bg-1); border-top: 1px solid var(--nq-border-1); z-index: 10; position: relative; }
.nq-productconfig-footer .configoption_total { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; gap: 16px; }

/* 底部栏 - 左侧价格 */
.nq-productconfig-footer-left { flex: 1; min-width: 0; }
.nq-productconfig-footer-price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.nq-productconfig-footer-label { font-size: var(--nq-font-sm); color: var(--nq-text-2); }
.nq-productconfig-footer-amount { font-size: 22px; font-weight: 600; color: var(--nq-danger); }
.nq-productconfig-footer-amount small { font-size: var(--nq-font-xs); font-weight: 400; color: var(--nq-text-3); }
.nq-productconfig-footer-discount { font-size: var(--nq-font-xs); color: var(--nq-text-3); }
.nq-productconfig-footer-discount s { color: var(--nq-text-4); }
.nq-productconfig-footer-discount em { font-style: normal; color: var(--nq-primary); }
.nq-productconfig-footer-nodiscount { border-bottom: 1px dashed var(--nq-text-4); }
.nq-productconfig-footer-note { font-size: 11px; color: var(--nq-text-1); margin-top: 4px; }

/* 底部栏 - 右侧操作 */
.nq-productconfig-footer-right { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.nq-productconfig-footer-right > .btn { display: flex; align-items: center; gap: 8px; padding: 10px 20px; font-size: 14px; font-weight: 600; white-space: nowrap; }

/* 费用明细 - 触发器 */
.nq-productconfig-footer-detail { position: relative; display: flex; align-items: center; }
.nq-productconfig-footer-detail-trigger { display: flex; align-items: center; font-size: var(--nq-font-sm); color: var(--nq-warning); cursor: pointer; white-space: nowrap; user-select: none; border-bottom: 1px dashed var(--nq-warning); transition: all 0.3s; }
.nq-productconfig-footer-detail-trigger:hover { opacity: 0.85; }
.nq-productconfig-footer-detail-arrow { font-size: 16px; transition: transform 0.3s; }
.nq-productconfig-footer-detail.open .nq-productconfig-footer-detail-arrow { transform: rotate(180deg); }

/* 费用明细 - 弹出面板（全宽） */
.nq-productconfig-footer-breakdown { display: none; position: absolute; bottom: calc(100% + 8px); right: 0; min-width: 560px; background: var(--nq-bg-1); border: 1px solid var(--nq-border-1); border-radius: var(--nq-radius); box-shadow: var(--nq-shadow-2); z-index: 100; }
.nq-productconfig-footer-breakdown-title { padding: 12px 16px; font-size: var(--nq-font-md); font-weight: 500; color: var(--nq-text-1); border-bottom: 1px solid var(--nq-fill-2); display: flex; justify-content: space-between; align-items: center; }
.nq-productconfig-footer-breakdown-total { font-size: var(--nq-font-md); font-weight: 500; color: var(--nq-text-1); }
.nq-productconfig-footer-breakdown-total em { font-style: normal; font-weight: 600; color: var(--nq-danger); }
.nq-productconfig-footer-breakdown-body { max-height: calc(100vh - 200px); overflow-y: auto; }
.nq-productconfig-footer-breakdown-body::-webkit-scrollbar { width: 4px; }
.nq-productconfig-footer-breakdown-body::-webkit-scrollbar-thumb { background: var(--nq-fill-4); border-radius: 4px; }
.nq-productconfig-footer-breakdown table { width: 100%; border-collapse: collapse; }
.nq-productconfig-footer-breakdown th { padding: 10px 16px; font-size: var(--nq-font-xs); color: var(--nq-text-1); font-weight: 500; background: var(--nq-primary-light); white-space: nowrap; text-align: left; }
.nq-productconfig-footer-breakdown td { padding: 10px 16px; font-size: var(--nq-font-xs); color: var(--nq-text-2); border-bottom: 1px solid var(--nq-fill-1); }
.nq-productconfig-footer-breakdown td:first-child { font-weight: 500; color: var(--nq-text-1); white-space: nowrap; }
.nq-productconfig-footer-breakdown td:nth-child(n+3) { text-align: right; white-space: nowrap; }

/* ---- bootstrap-select 适配 ---- */
.nq-productconfig-field .bootstrap-select { max-width: 280px; }
.nq-productconfig-field .bootstrap-select .dropdown-toggle { background: var(--nq-fill-2); border: 1px solid var(--nq-fill-2); height: 32px; font-size: var(--nq-font-xs); border-radius: var(--nq-radius); color: var(--nq-text-1); }
.nq-productconfig-field .bootstrap-select .dropdown-toggle:hover { background: var(--nq-fill-3); border-color: transparent; }
.nq-productconfig-field .bootstrap-select.show .dropdown-toggle { background: var(--nq-bg-1); border-color: var(--nq-primary); }
.was-validated .custom-control-input:valid~.custom-control-label::before { background-color: var(--nq-bg-1); }
.bootstrap-select.is-valid .dropdown-toggle, .was-validated .bootstrap-select select:valid+.dropdown-toggle { border-color: var(--nq-fill-2) !important; }

/* ---- 配置页响应式 ---- */
@media (max-width: 768px) {
	.nq-productconfig-wrap { flex-direction: column; }
	.nq-cart-recommend { width: 100%; }
	.nq-productconfig-row { flex-direction: column; }
	.nq-productconfig-label { width: 100%; min-width: 0; padding: 0 0 8px; }
	.nq-productconfig-field select.form-control,
	.nq-productconfig-field input.form-control:not(.configoption_range_val),
	.nq-productconfig-field textarea.form-control,
	.nq-productconfig-field .bootstrap-select,
	.nq-productconfig-password { max-width: 100%; }
	.nq-productconfig-footer .configoption_total { flex-wrap: wrap; padding: 10px 16px; }
	.nq-productconfig-footer-breakdown { width: 320px; }
	.footer { z-index: 1; display: none !important; }
}

/* ============================================
   结算页 nq-viewcart-*
   ============================================ */

/* ---- 容器（大卡片） ---- */
.nq-viewcart { width: 75vw; min-width: 680px; max-width: 1440px; margin: 0 auto 100px; }

/* ---- 头部 ---- */
.nq-viewcart-header { display: flex; align-items: center; gap: 10px; padding: 14px 20px; background: var(--nq-bg-1); border-bottom: 1px solid var(--nq-fill-2); }
.nq-viewcart-back { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--nq-radius); color: var(--nq-text-2); font-size: var(--nq-font-xl); transition: all var(--nq-transition); }
.nq-viewcart-back:hover { background: var(--nq-fill-2); color: var(--nq-primary); text-decoration: none; }
.nq-viewcart-title { margin: 0; font-size: var(--nq-font-lg); font-weight: 600; color: var(--nq-text-1); }
.nq-viewcart-count { margin-left: auto; font-size: var(--nq-font-sm); color: var(--nq-text-3); }

/* ---- 商品卡片悬停 ---- */
.nq-viewcart .nq-viewcart-product { transition: border-color 0.25s, box-shadow 0.25s; }
.nq-viewcart .nq-viewcart-product:hover { border-color: var(--nq-primary); box-shadow: var(--nq-shadow-2); }



/* ---- 操作按钮 ---- */
body.nq .nq-viewcart-action { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: none; border-radius: var(--nq-radius); cursor: pointer; transition: all 0.25s; text-decoration: none; background: transparent; color: var(--nq-text-3); font-size: 16px; }
body.nq .nq-viewcart-action:hover { background: var(--nq-primary-light); color: var(--nq-primary); }
body.nq .nq-viewcart-action--del:hover { background: var(--nq-danger-light); color: var(--nq-danger); }


/* ---- 配置标签 ---- */
.nq-viewcart-config-tag { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; background: var(--nq-fill-1); border-radius: var(--nq-radius); font-size: var(--nq-font-xs); color: var(--nq-text-1); transition: background var(--nq-transition); }
.nq-viewcart-config-tag:hover { background: var(--nq-primary-light); }

/* ---- 余额/信用额（网格内卡片） ---- */
.nq-viewcart-credit-item .payment-checkbox { position: absolute; opacity: 0; }
.nq-viewcart-credit-item i { font-size: 22px; color: var(--nq-primary); }
.nq-viewcart-credit-amount { font-size: var(--nq-font-xs); font-weight: 600; color: var(--nq-primary); margin-top: -2px; }
.nq-viewcart-credit-item.insufficient { border-color: var(--nq-fill-3); background: var(--nq-fill-1); opacity: 0.6; cursor: not-allowed; }
.nq-viewcart-credit-item.insufficient i { color: var(--nq-text-4); }
.nq-viewcart-credit-item.insufficient .nq-viewcart-credit-amount { color: var(--nq-text-4); }
.nq-viewcart-credit-item.insufficient:hover { border-color: var(--nq-fill-3); background: var(--nq-fill-1); }

/* ---- 余额状态提示 ---- */
.nq-viewcart-credit-notice { display: flex; align-items: center; gap: 6px; margin-top: 10px; padding: 8px 12px; background: var(--nq-primary-light); border-radius: var(--nq-radius); font-size: var(--nq-font-sm); color: var(--nq-primary); }
.nq-viewcart-credit-notice i { font-size: 16px; }
.nq-viewcart-credit-notice strong { font-weight: 600; }

/* ---- 支付网关网格 ---- */
.nq-viewcart-gateway-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.nq-viewcart-gateway-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 12px 8px; border: 1px solid var(--nq-border-1); border-radius: var(--nq-radius); cursor: pointer; transition: all var(--nq-transition); min-height: 72px; }
.nq-viewcart-gateway-item:hover { border-color: var(--nq-primary); background: var(--nq-fill-1); }
.nq-viewcart-gateway-item.active { border-color: var(--nq-primary); background: var(--nq-primary-light); }
.nq-viewcart-gateway-item img { max-width: 90px; max-height: 28px; object-fit: contain; }
.nq-viewcart-gateway-item span { font-size: var(--nq-font-xs); color: var(--nq-text-3); text-align: center; line-height: 1.2; }
.nq-viewcart-gateway-item.active span { color: var(--nq-primary); font-weight: 500; }

/* ---- 固定底部栏 ---- */
.nq-viewcart-footer { position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; background: var(--nq-bg-1); border-top: 1px solid var(--nq-border-1); box-shadow: 0 -2px 10px rgba(0,0,0,0.06); }
.nq-viewcart-footer-inner { display: flex; align-items: center; justify-content: space-between; width: 75vw; min-width: 680px; max-width: 1440px; margin: 0 auto; padding: 14px 16px; gap: 16px; }
.nq-viewcart-footer-left { flex: 1; min-width: 0; }
.nq-viewcart-footer-price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.nq-viewcart-footer-label { font-size: var(--nq-font-md); font-weight: 500; color: var(--nq-text-2); }
.nq-viewcart-footer-amount { font-size: 22px; font-weight: 600; color: var(--nq-danger); }
.nq-viewcart-footer-nodiscount { font-size: var(--nq-font-xs); color: var(--nq-text-4); }
.nq-viewcart-footer-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nq-viewcart-footer-right .btn { padding: 8px 24px; font-size: var(--nq-font-md); font-weight: 500; }

/* ---- 价格加载动画 ---- */
.nq-price-loading { display: inline-flex; align-items: center; gap: 6px; font-size: var(--nq-font-sm); color: var(--nq-text-1); }
.nq-price-loading::before { content: ''; display: inline-block; width: 14px; height: 14px; min-width: 14px; border: 2px solid rgba(var(--arcoblue-6),.3); border-top-color: rgb(var(--arcoblue-6)); border-radius: 50%; animation: nq-btn-spin .6s linear infinite; }

/* ---- 按钮加载态 ---- */
.btn.is-loading { position: relative; pointer-events: none; }
.btn.is-loading .btn-text { visibility: hidden; }
.btn.is-loading .btn-loading { display: flex; }
.btn .btn-loading { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; gap: 6px; color: var(--nq-bg-1); font-size: inherit; }
.btn .btn-loading::before { content: ''; width: 1em; height: 1em; border: 2px solid rgba(255,255,255,.3); border-top-color: var(--nq-bg-1); border-radius: 50%; animation: nq-btn-spin .6s linear infinite; }
@keyframes nq-btn-spin { to { transform: rotate(360deg); } }

/* ---- 结算页响应式 ---- */
@media (max-width: 768px) {
	.nq-viewcart { width: 100%; min-width: 0; margin-bottom: 120px; }
	.nq-viewcart-footer-inner { width: 100%; min-width: 0; flex-direction: column; align-items: stretch; padding: 10px 12px; }
	.nq-viewcart-footer-right { justify-content: stretch; }
	.nq-viewcart-footer-right .btn { flex: 1; }
	.nq-viewcart-gateway-grid { grid-template-columns: repeat(3, 1fr); }
	.nq-viewcart-balance-item { min-width: 0; flex: 1; }
	.nq-viewcart .card-header { flex-wrap: wrap; }
}
