/* ============================================================
   yunzhou · 商品配置页（configureproduct.tpl）设计层
   2026-10-26 · 版本参数 ?v=20261035
   策略：官方类名/JS 钩子全部保留（零改名），云舟视觉经 yz- 包裹类 + 官方钩子的
   后代选择器实现；CSS 变量一律带回退值（不依赖父页是否注入主题变量）
   ============================================================ */

/* ---------- 页面容器 ---------- */
.yz-cp-form { --yz-accent: var(--accent, #ffb224); }

/* ---------- 顶部产品名卡 ---------- */
.yz-cp-headcard {
  background: var(--surface, #171b22);
  border: 1px solid var(--line, rgba(128, 140, 160, .18));
  border-radius: 14px 14px 0 0;
}
.yz-cp-title {
  font-size: 19px;
  font-weight: 800;
  color: var(--text, #e8edf4);
  margin: 0;
}

/* ---------- 配置表单行 ---------- */
.yz-cp-row { margin-bottom: 18px; }
.yz-cp-row:last-child { margin-bottom: 0; }
.yz-cp-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--muted, #8a94a6);
  padding-top: calc(0.47rem + 1px);
}
.yz-cp .card {
  background: var(--surface, #171b22);
  border: 1px solid var(--line, rgba(128, 140, 160, .18));
  border-radius: 14px;
}
.yz-cp .card-body { padding: 22px; }

/* ---------- 官方选项按钮组（btn-group-toggle）云舟化 ---------- */
.yz-cp .btn-group .btn-primary {
  background: transparent;
  border: 1px solid var(--line, rgba(128, 140, 160, .25));
  color: var(--text, #e8edf4);
  font-weight: 600;
  border-radius: 10px !important;
  margin: 0 6px 8px 0;
  padding: 7px 14px;
  transition: all .15s ease;
}
.yz-cp .btn-group .btn-primary:hover {
  border-color: var(--accent, #ffb224);
  color: var(--accent, #ffb224);
}
.yz-cp .btn-group .btn-primary.active {
  background: var(--accent, #ffb224);
  border-color: var(--accent, #ffb224);
  color: #191204;
  box-shadow: 0 4px 14px rgba(255, 178, 36, .25);
}

/* ---------- 周期按钮（cycle） ---------- */
.yz-cp .cycle .btn-custom {
  background: transparent;
  border: 1px solid var(--line, rgba(128, 140, 160, .25));
  color: var(--text, #e8edf4);
  font-weight: 600;
  border-radius: 10px !important;
  margin: 0 8px 8px 0;
  padding: 8px 16px;
}
.yz-cp .cycle .btn-custom.active,
.yz-cp .cycle .btn-custom:not(:disabled):not(.disabled).active {
  background: var(--accent, #ffb224);
  border-color: var(--accent, #ffb224);
  color: #191204;
}
.yz-cp .cycle-select-discount {
  display: inline-block;
  margin-left: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #191204;
  background: rgba(25, 18, 4, .14);
  border-radius: 6px;
  padding: 1px 6px;
}

/* ---------- 表单控件 ---------- */
.yz-cp .form-control {
  background: var(--bg, #0f1115);
  border: 1px solid var(--line, rgba(128, 140, 160, .25));
  color: var(--text, #e8edf4);
  border-radius: 10px;
  height: auto;
  padding: 8px 12px;
}
.yz-cp .form-control:focus {
  border-color: var(--accent, #ffb224);
  box-shadow: 0 0 0 3px rgba(255, 178, 36, .15);
}
.yz-cp .form-control.is-invalid {
  border-color: #e5534b;
}
.yz-cp input[disabled], .yz-cp .form-control[disabled] {
  background: rgba(128, 140, 160, .08);
  color: var(--muted, #8a94a6);
}

/* ---------- ion-rangeslider 云舟化 ---------- */
.yz-cp .irs--flat .irs-bar,
.yz-cp .irs--flat .irs-bar-edge {
  background: var(--accent, #ffb224);
  border-color: var(--accent, #ffb224);
}
.yz-cp .irs--flat .irs-handle > i:first-child {
  background: var(--accent, #ffb224);
}
.yz-cp .irs--flat .irs-from, .yz-cp .irs--flat .irs-to, .yz-cp .irs--flat .irs-single {
  background: var(--accent, #ffb224);
  color: #191204;
}
.yz-cp .irs--flat .irs-from::before, .yz-cp .irs--flat .irs-to::before {
  border-top-color: var(--accent, #ffb224);
}
/* 滑块禁用区（官方 JS 注入的 .range_none） */
.yz-cp .range_none {
  position: absolute;
  top: 0;
  height: 100%;
  background: rgba(128, 140, 160, .12);
  pointer-events: none;
}

/* ---------- bootstrap-select 下拉（含 OS/数据中心图标选项） ---------- */
.yz-cp .bootstrap-select .dropdown-toggle {
  background: var(--bg, #0f1115);
  border: 1px solid var(--line, rgba(128, 140, 160, .25));
  color: var(--text, #e8edf4);
  border-radius: 10px;
}
.yz-cp .bootstrap-select .dropdown-toggle:focus,
.yz-cp .bootstrap-select.show .dropdown-toggle {
  border-color: var(--accent, #ffb224);
  outline: none !important;
}
.yz-cp .bootstrap-select .dropdown-menu {
  background: var(--surface, #171b22);
  border: 1px solid var(--line, rgba(128, 140, 160, .25));
  border-radius: 10px;
}
.yz-cp .bootstrap-select .dropdown-menu .inner .show { max-height: 300px; }
.yz-cp .bootstrap-select .dropdown-item {
  color: var(--text, #e8edf4);
}
.yz-cp .bootstrap-select .dropdown-item:hover,
.yz-cp .bootstrap-select .dropdown-item.active {
  background: rgba(255, 178, 36, .14);
  color: var(--accent, #ffb224);
}
.yz-cp .bootstrap-select .dropdown-item.selected {
  background: var(--accent, #ffb224);
  color: #191204;
}
.yz-cp .bs-ok-default::after { border-color: var(--accent, #ffb224); }

/* ---------- 右侧订单摘要卡 ---------- */
.yz-cp-summary {
  position: sticky;
  top: 16px;
  background: var(--surface, #171b22);
  border: 1px solid var(--line, rgba(128, 140, 160, .18));
  border-radius: 14px;
}
.yz-cp-summary .card-title {
  color: var(--text, #e8edf4);
  font-weight: 800;
}
/* 注入的 ordersummary 片段（AJAX 渲染，防御式覆盖） */
.yz-cp-summary .configoption_total,
.yz-cp-summary .configoption_total table,
.yz-cp-summary .table-responsive { background: transparent !important; }
.yz-cp-summary .configoption_total table td {
  border: none !important;
  padding: 7px 5px !important;
  font-size: 14px;
  color: var(--text, #e8edf4);
}
.yz-cp-summary .configoption_total .color-999 { color: var(--muted, #8a94a6) !important; }
.yz-cp-summary .configoption_total .text-dark { color: var(--text, #e8edf4) !important; }
.yz-cp-summary .configoption_total .font-weight-bold { color: var(--accent, #ffb224) !important; }
.yz-cp-summary .configoption_total hr {
  border-color: var(--line, rgba(128, 140, 160, .25));
}
.yz-cp-summary .configoption_total .btn-primary,
.yz-cp-summary .configoption_total #addToCartBtn,
.yz-cp-summary .configoption_total #addToCartBtnTwo {
  background: var(--accent, #ffb224);
  border-color: var(--accent, #ffb224);
  color: #191204;
  font-weight: 700;
  border-radius: 10px;
  padding: 9px 20px;
}
.yz-cp-summary .configoption_total .btn-primary:hover {
  filter: brightness(1.06);
}
/* 注入片段的移动端底栏 */
.yz-cp .mobile-bottom-total {
  background: var(--surface, #171b22);
  border-top: 1px solid var(--line, rgba(128, 140, 160, .18));
}
.yz-cp .mobile-bottom-total .total { color: var(--text, #e8edf4); }
.yz-cp .mobile-bottom-total .btn-primary {
  background: var(--accent, #ffb224);
  border-color: var(--accent, #ffb224);
  color: #191204;
  font-weight: 700;
}

/* ---------- 错误提示 ---------- */
.yz-cp .error-tip {
  color: #e5534b;
  font-size: 12px;
  margin-top: 4px;
  display: none;
  width: 100%;
}
.yz-cp .alert-danger {
  background: rgba(229, 83, 75, .12);
  border: 1px solid rgba(229, 83, 75, .35);
  color: #ff8a80;
  border-radius: 10px;
}

/* ---------- tooltip 图标 ---------- */
.yz-cp .bx.bxs-help-circle { font-size: 13px; opacity: .75; }

/* ---------- 响应式 ---------- */
@media (max-width: 1199px) {
  .yz-cp-summary { position: static; margin-top: 16px; }
}
@media (max-width: 767px) {
  .yz-cp .card-body { padding: 16px; }
  .yz-cp-label { padding-top: 0; margin-bottom: 6px; }
  .yz-cp-row .col-md-3, .yz-cp-row .col-md-10 { width: 100%; flex: none; max-width: 100%; }
}

/* ==================================================================
   2026-11-07 修复：产品配置项按钮「全部呈已选中琥珀色」
   根因：clientarea/yunzhou/assets/css/yunzhou.css 的「Q5 琥珀按钮全态」
        对 .btn-primary / .btn-primary.active 统一 !important 上色，
        而本页选项 chip 正是 <label class="btn btn-primary">，
        页面内「未选中=透明 / 选中=琥珀」两态被压制，全部变实心。
   做法：同权重提级 + !important，只在本页 .yz-cp 作用域内还原两态。
   ================================================================== */
.yz-cp .btn-group .btn-primary {
  background-color: transparent !important;
  border-color: var(--line, #D9E0E9) !important;
  color: var(--text, #182230) !important;
  box-shadow: none !important;
  filter: none !important;
}
.yz-cp .btn-group .btn-primary:hover,
.yz-cp .btn-group .btn-primary:focus {
  background-color: transparent !important;
  border-color: var(--accent, #F0A415) !important;
  color: var(--accent, #F0A415) !important;
  box-shadow: none !important;
  filter: none !important;
}
.yz-cp .btn-group .btn-primary.active,
.yz-cp .btn-group .btn-primary:not(:disabled):not(.disabled).active {
  background-color: var(--accent, #F0A415) !important;
  border-color: var(--accent, #F0A415) !important;
  color: var(--on-accent, #191204) !important;
  box-shadow: 0 4px 14px rgba(240, 164, 21, .25) !important;
  filter: none !important;
}

/* 周期按钮（btn-custom）同样两态区分 */
.yz-cp .cycle .btn-custom {
  background-color: transparent !important;
  border-color: var(--line, #D9E0E9) !important;
  color: var(--text, #182230) !important;
  box-shadow: none !important;
  filter: none !important;
}
.yz-cp .cycle .btn-custom:hover,
.yz-cp .cycle .btn-custom:focus {
  background-color: transparent !important;
  border-color: var(--accent, #F0A415) !important;
  color: var(--accent, #F0A415) !important;
  filter: none !important;
}
.yz-cp .cycle .btn-custom.active,
.yz-cp .cycle .btn-custom:not(:disabled):not(.disabled).active {
  background-color: var(--accent, #F0A415) !important;
  border-color: var(--accent, #F0A415) !important;
  color: var(--on-accent, #191204) !important;
  box-shadow: 0 4px 14px rgba(240, 164, 21, .25) !important;
  filter: none !important;
}
