/* ===== 产品列表页 · 复刻 DEMO（作用域 #business-types-page）===== */

/* 顶部标题区 */
#business-types-page .page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  animation: fadeInDown 0.6s var(--ease);
}

#business-types-page .header-left .greeting {
  font-size:var(--fs-md);
  color: var(--primary);
  font-weight: 500;
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}

#business-types-page .header-left h1 {
  font-size:var(--fs-3xl);
  font-weight: 700;
  color: var(--text-title);
  margin-bottom: 6px;
  letter-spacing: -0.3px;
}

#business-types-page .header-left .subtitle {
  font-size:var(--fs-lg);
  color: var(--text-sub);
}

#business-types-page .header-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

#business-types-page .header-right .date {
  font-size:var(--fs-lg);
  color: var(--text-sub);
}

/* 通用按钮 */
#business-types-page .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
  border: none;
  transition: all 0.25s var(--ease);
  white-space: nowrap;
}

#business-types-page .btn-primary {
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: #fff;
  box-shadow: var(--shadow-btn);
}

#business-types-page .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(45, 122, 82, 0.4);
}

#business-types-page .btn-primary:active { transform: translateY(0); }

#business-types-page .btn svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* 双栏布局 */
#business-types-page .split-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 24px;
  align-items: start;
}

/* 左侧：业务类型栏 */
#business-types-page .type-panel {
  background: var(--bg-card);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-card);
  border-radius: var(--ui-radius,12px);
  box-shadow: var(--shadow-card);
  padding: 20px 16px;
}

#business-types-page .type-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 8px 14px;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 12px;
}

#business-types-page .type-panel-header h2 {
  font-size:var(--fs-xl);
  font-weight: 700;
  color: var(--text-title);
}

#business-types-page .type-count-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary-light);
  color: var(--primary);
  font-size:var(--fs-base);
  font-weight: 600;
  font-family: var(--font-mono);
}

#business-types-page .type-search {
  position: relative;
  margin-bottom: 12px;
}

#business-types-page .type-search svg {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--text-placeholder);
}

#business-types-page .type-search input {
  width: 100%;
  padding: 9px 12px 9px 36px;
  border: 1.5px solid var(--admin-border);
  
  
  font-family: var(--font-sans);
  color: var(--text-body);
  background: #fff;
  transition: all 0.2s var(--ease);
  outline: none;
}

#business-types-page .type-search input::placeholder { color: var(--text-placeholder); }

#business-types-page .type-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 480px;
  overflow-y: auto;
  padding-right: 4px;
}

#business-types-page .type-list::-webkit-scrollbar { width: 4px; }
#business-types-page .type-list::-webkit-scrollbar-thumb { background: rgba(var(--brand-green-rgb),0.2); border-radius: var(--ui-radius,12px); }

#business-types-page .type-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--ui-radius,12px);
  cursor: pointer;
  transition: all 0.25s var(--ease);
  position: relative;
}

#business-types-page .type-item:hover { background: var(--primary-lighter); }

#business-types-page .type-item.active::before {
  content: '';
  position: absolute;
  left: -16px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 22px;
  background: var(--primary);
  border-radius: 0 var(--ui-radius,12px) var(--ui-radius,12px) 0;
}

#business-types-page .type-item-icon {
  width: 34px;
  height: 34px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary-light);
  color: var(--primary);
  font-size:var(--fs-lg);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.25s var(--ease);
}

#business-types-page .type-item-name {
  flex: 1;
  font-size:var(--fs-lg);
  font-weight: 500;
  color: var(--text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s;
}

#business-types-page .type-item.active .type-item-name {
  color: #fff;
  font-weight: 600;
}

#business-types-page .type-item-count {
  font-size:var(--fs-base);
  font-family: var(--font-mono);
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary-light);
  color: var(--primary);
  min-width: 24px;
  text-align: center;
  transition: all 0.25s;
}

#business-types-page .type-item-count.zero {
  background: var(--gray-light, var(--admin-surface-soft));
  color: var(--text-placeholder);
}

#business-types-page .type-item-actions {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 2px;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 1;
}

#business-types-page .type-item:hover .type-item-actions { opacity: 1; }
#business-types-page .type-item:hover .type-item-count { opacity: 0; }

#business-types-page .type-action-btn {
  width: 26px;
  height: 26px;
  border-radius: var(--ui-radius,12px);
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

#business-types-page .type-action-btn.edit { color: var(--text-sub); }
#business-types-page .type-action-btn.edit:hover { background: var(--primary-light); color: var(--primary); }
#business-types-page .type-action-btn.del { color: var(--text-sub); }
#business-types-page .type-action-btn.del:hover { background: var(--danger-light); color: var(--danger-deep); }

#business-types-page .type-action-btn svg { width: 14px; height: 14px; }

#business-types-page .type-item.active .type-action-btn { color: rgba(255,255,255,0.8); }
#business-types-page .type-item.active .type-action-btn:hover { background: rgba(255,255,255,0.2); color: #fff; }

#business-types-page .add-type-btn {
  width: 100%;
  margin-top: 12px;
  padding: 12px;
  border: 1.5px dashed var(--border-green);
  border-radius: var(--ui-radius,12px);
  background: transparent;
  color: var(--primary);
  font-size:var(--fs-md);
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.25s var(--ease);
}

#business-types-page .add-type-btn svg { width: 15px; height: 15px; }

/* 右侧：产品区 */
#business-types-page .product-panel {
  background: var(--bg-card);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-card);
  border-radius: var(--ui-radius,12px);
  box-shadow: var(--shadow-card);
  padding: 24px 28px;
  min-height: 560px;
}

#business-types-page .product-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 18px;
}

#business-types-page .product-panel-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

#business-types-page .product-panel-title h2 {
  font-size:var(--fs-xl);
  font-weight: 700;
  color: var(--text-title);
  display: flex;
  align-items: center;
  gap: 10px;
}

#business-types-page .product-panel-title h2 .type-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary);
  box-shadow: 0 0 8px rgba(45, 122, 82, 0.5);
}

#business-types-page .product-panel-title .product-count {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary-light);
  color: var(--primary);
  font-size:var(--fs-base);
  font-weight: 600;
  font-family: var(--font-mono);
}

#business-types-page .product-panel-title .product-count span {
  font-weight: 700;
}

#business-types-page .filter-tabs {
  display: flex;
  background: var(--primary-lighter);
  
  
  
  margin-bottom: 20px;
  flex-wrap: wrap;
}

#business-types-page .filter-tab {
  display: flex;
  align-items: center;
  
  
  
  
  
  color: var(--text-sub);
  cursor: pointer;
  transition: all 0.25s var(--ease);
  border: none;
  background: transparent;
  font-family: var(--font-sans);
}

#business-types-page .filter-tab .tab-count {
  font-family: var(--font-mono);
  font-size:var(--fs-sm);
  background: rgba(0,0,0,0.06);
  padding: 1px 7px;
  border-radius: var(--ui-radius,12px);
}

#business-types-page .filter-tab.active .tab-count {
  background: rgba(255,255,255,0.2);
}

/* 产品表格 */
#business-types-page .product-table {
  width: 100%;
  border-collapse: collapse;
}

#business-types-page .product-table thead th {background: var(--primary-lighter);font-weight: 600;color: var(--text-body);text-align: left;border-bottom: 1px solid var(--border-light);white-space: nowrap}

#business-types-page .product-table thead th:first-child {border-radius: var(--ui-radius,12px) 0 0 var(--ui-radius,12px)}
#business-types-page .product-table thead th:last-child {text-align: right;border-radius: 0 var(--ui-radius,12px) var(--ui-radius,12px) 0}

#business-types-page .product-table tbody tr {
  transition: background 0.2s var(--ease);
  border-bottom: 1px solid var(--border-light);
}

#business-types-page .product-table tbody tr:last-child { border-bottom: none; }

#business-types-page .product-table tbody td {color: var(--text-body)}
#business-types-page .product-table tbody td:last-child {text-align: right}

#business-types-page .cell-product {
  display: flex;
  align-items: center;
  gap: 10px;
}

#business-types-page .cell-product .product-mini-icon {
  width: 32px;
  height: 32px;
  border-radius: var(--ui-radius,12px);
  background: var(--primary-light);
  color: var(--primary);
  font-size:var(--fs-base);
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#business-types-page .cell-product .product-avatar-img {
  object-fit: cover;
  cursor: zoom-in;
}

#business-types-page .cell-product .name {
  font-weight: 600;
  color: var(--text-title);
}

#business-types-page .cell-product .sub {
  display: block;
  font-size:var(--fs-sm);
  color: var(--text-sub);
  font-family: var(--font-mono);
  margin-top: 2px;
}

#business-types-page .cell-mono {
  font-family: var(--font-mono);
  font-size:var(--fs-md);
  font-weight: 600;
}

#business-types-page .cell-price { color: var(--text-title); }
#business-types-page .cell-cost { color: var(--text-sub); }
#business-types-page .cell-cost.none { color: var(--text-placeholder); font-weight: 400; }

#business-types-page .cell-tag {
  display: inline-flex;
  padding: 3px 10px;
  border-radius: var(--ui-radius,12px);
  font-size:var(--fs-sm);
  font-weight: 600;
}

#business-types-page .cell-tag.high-profit { background: var(--danger-light); color: var(--danger-deep); }
#business-types-page .cell-tag.has-price { background: var(--success-light); color: var(--success-deep); }
#business-types-page .cell-tag.no-price { background: var(--gray-light, var(--admin-surface-soft)); color: var(--text-sub); }

#business-types-page .table-action-btn {
  width: 26px;
  height: 26px;
  border-radius: var(--ui-radius,12px);
  border: none;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  color: var(--text-sub);
  margin-left: 4px;
}

#business-types-page .table-action-btn.edit:hover { background: var(--primary-light); color: var(--primary); }
#business-types-page .table-action-btn.del:hover { background: var(--danger-light); color: var(--danger-deep); }
#business-types-page .table-action-btn.hist:hover { background: var(--warning-light); color: var(--warning-deep); }

#business-types-page .table-action-btn svg { width: 14px; height: 14px; }

/* ===== 产品报价历史弹窗（各供货商对比） ===== */
#quote-history-modal .dialog { width: min(720px, 94vw); padding: 0; max-height: 92vh; overflow-y: auto; border-radius: var(--ui-radius,12px); }
#quote-history-modal .modal-body { padding: 0 22px 20px; }
#quote-history-modal .qh-summary { padding: 2px 0 12px; font-size: var(--fs-md); color: var(--admin-text-muted); }
#quote-history-modal .qh-state { padding: 16px 0; font-size: var(--fs-md); color: var(--admin-text-muted); }
#quote-history-modal .qh-cmp-table { width: 100%; border-collapse: collapse; }
#quote-history-modal .qh-cmp-table th { font-weight: 700; color: var(--admin-text-muted); background: var(--admin-surface-soft); white-space: nowrap; border-bottom: 1px solid var(--admin-border-soft); }
#quote-history-modal .qh-cmp-table td { color: var(--admin-text); border-bottom: 1px solid var(--admin-border-soft); }
#quote-history-modal .qh-cmp-table tbody tr:hover td { background: var(--admin-surface-soft); }
#quote-history-modal .qh-cmp-table td b { color: var(--admin-text); }

/* 空状态 */
#business-types-page .empty-state {
  
  text-align: center;
}

#business-types-page .empty-state-icon {
  width: 80px;
  
  margin: 0 auto 18px;
  color: var(--border-green);
  animation: breathe 3s ease-in-out infinite;
}

#business-types-page .empty-state h3 {
  
  
  color: var(--text-body);
  margin-bottom: 10px;
}

#business-types-page .empty-state p {
  
  color: var(--text-sub);
  margin-bottom: 24px;
  line-height:var(--lh-relaxed);
}

#business-types-page .empty-state p .highlight {
  color: var(--primary);
  font-weight: 600;
}

/* 动画（供本页使用；若 suppliers.css 已加载则重复定义无害） */
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

/* 补充：类型项点击区 + 拖拽态 */
#business-types-page .type-item-main {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}
#business-types-page .type-item.dragging { opacity: 0.6; }

/* ============================================================
   炫彩科技版 · 产品列表页 + 通用弹窗（参照产品资料管理Demo）
   ============================================================ */

/* ---------- 产品列表页：配色切换为 cyan/violet/pink ---------- */
#business-types-page .type-count-badge{background:rgba(var(--admin-accent-2-rgb),.10);color:var(--brand-violet)}
#business-types-page .type-search input:hover{border-color:var(--admin-accent-2)}
#business-types-page .type-search input:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10)}
#business-types-page .type-item-icon{background:rgba(var(--admin-accent-2-rgb),.10);color:var(--brand-violet)}
#business-types-page .type-item.active{background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.10),rgba(var(--admin-accent-2-rgb),.16),rgba(var(--admin-accent-3-rgb),.10));border:1px solid rgba(var(--admin-accent-2-rgb),.45);box-shadow:0 4px 14px rgba(var(--admin-accent-2-rgb),.18)}
#business-types-page .type-item.active::before{background:var(--admin-accent-2)}
#business-types-page .type-item.active .type-item-name{color:var(--admin-text)}
#business-types-page .type-item.active .type-item-icon{background:rgba(0,0,0,.45);color:#fff}
#business-types-page .type-item-count{background:rgba(var(--admin-accent-2-rgb),.10);color:var(--brand-violet)}
#business-types-page .type-item.active .type-item-count{background:#fff;color:var(--brand-violet)}
#business-types-page .add-type-btn{border-color:rgba(var(--admin-accent-2-rgb),.5);color:var(--brand-violet);background:rgba(var(--admin-accent-2-rgb),.06)}
#business-types-page .add-type-btn:hover{background:rgba(var(--admin-accent-2-rgb),.14);border-color:var(--admin-accent-2)}
#business-types-page .btn-primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-2-rgb),.42)!important}
#business-types-page .btn-primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-3-rgb),.5)}
#business-types-page .product-panel-title h2 .type-dot{background:var(--admin-accent-2);box-shadow:0 0 8px rgba(var(--admin-accent-2-rgb),.5)}
#business-types-page .product-count{background:rgba(var(--admin-accent-2-rgb),.10);color:var(--brand-violet)}
#business-types-page .filter-tabs{background:rgba(var(--admin-accent-2-rgb),.06)}
#business-types-page .filter-tab:hover{color:var(--brand-violet);background:rgba(255,255,255,.6)}
#business-types-page .filter-tab.active{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));color:#fff;box-shadow:0 4px 14px rgba(var(--admin-accent-2-rgb),.35)}
#business-types-page .product-table thead th{background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.08),rgba(var(--admin-accent-2-rgb),.08),rgba(var(--admin-accent-3-rgb),.07))!important;color:#6b74a8!important}
#business-types-page .product-table tbody tr:hover{background:linear-gradient(90deg,rgba(var(--admin-accent-2-rgb),.05),rgba(var(--admin-accent-3-rgb),.04))}
#business-types-page .product-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--admin-accent-2)}
#business-types-page .cell-product .product-mini-icon{background:rgba(var(--admin-accent-2-rgb),.10);color:var(--brand-violet)}
/* 玻璃卡片顶部渐变条 */
#business-types-page .type-panel,#business-types-page .product-panel{position:relative;overflow:hidden}
#business-types-page .type-panel::before,#business-types-page .product-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))}

/* ---------- 通用弹窗（产品/业务类型）炫彩科技版 ---------- */
#generic-modal .dialog{overflow:hidden;position:relative}
#generic-modal .dialog::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));z-index:1}
#generic-modal .dialog-title{padding-bottom:14px;border-bottom:1px solid rgba(120,130,255,.14);margin-bottom:18px}
#generic-modal .title-icon{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;color:#fff!important;box-shadow:0 6px 16px rgba(var(--admin-accent-rgb),.35)!important}
#generic-modal .dialog-title h2{background:linear-gradient(90deg,#155e75,var(--brand-violet-deep) 60%,var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#generic-modal .dialog-title p{color:var(--admin-text-sub)}
#generic-modal .form-grid label{font-size:var(--fs-base);color:var(--admin-text);font-weight:700}#generic-modal .form-grid>label input, #generic-modal .form-grid>label select{border:1.5px solid var(--admin-border-soft)!important;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#generic-modal .form-grid>label textarea{border:1.5px solid var(--admin-border-soft)!important;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);font-size:var(--fs-md);color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#generic-modal .form-grid>label textarea{height:auto;min-height:74px}
#generic-modal .form-grid>label input:disabled,#generic-modal .form-grid>label select:disabled{background:var(--admin-surface-soft)!important;color:var(--admin-text-sub)!important;border-color:var(--admin-border)!important;cursor:not-allowed}
#generic-modal .form-grid>label input::placeholder,#generic-modal .form-grid>label textarea::placeholder{color:var(--admin-text-sub)!important}
#generic-modal .f-box input::placeholder,#generic-modal .f-box select option:first-child{color:var(--admin-text-sub)!important}
#generic-modal .tier-row input::placeholder{color:var(--admin-text-sub)!important}
#generic-modal .product-material-row input::placeholder,#generic-modal .product-spec-row input::placeholder{color:var(--admin-text-sub)!important}
#product-modal .f-box input::placeholder,#product-modal .f-box textarea::placeholder,#product-modal .tier-row input::placeholder,#product-modal .supplier-spec-block input::placeholder{color:var(--admin-text-sub)!important}
#generic-modal .form-grid>label input:focus,#generic-modal .form-grid>label select:focus,#generic-modal .form-grid>label textarea:focus{border-color:var(--admin-accent-2)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.12)!important}

#generic-modal .btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-2-rgb),.42)!important;border:none!important}
#generic-modal .btn.primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-1px);filter:none}
#generic-modal .btn.secondary{border-radius:var(--ui-radius,12px)}
/* 阶梯档位 / 物料 / 规格 炫彩化 */
#generic-modal .tier-editor{border:1px solid rgba(120,130,255,.2);border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.04),rgba(var(--admin-accent-2-rgb),.04))}
/* ---------- 新增/修改业务类型弹窗 · 紧凑版（避免继承产品弹窗的 960px 宽度）---------- */
#generic-modal:has(#generic-form[data-kind="business_types"]) .dialog{width:min(560px,94vw);border-radius:var(--ui-radius,12px)}
/* ---------- 产品资料弹窗 · 严格复刻 Demo 两栏结构 ---------- */
#generic-modal .dialog{padding:0;width:min(960px,94vw);max-height:92vh;overflow-y:auto!important}
#generic-modal .dialog::before{height:4px}
#generic-modal .dialog-title{padding:20px 24px 14px}
#generic-modal #generic-form{padding:0 24px 20px}
#generic-form[data-kind="catalog_product"] #generic-fields{display:block}

#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title{border-bottom:none;padding-bottom:0;margin-bottom:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title h2{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:var(--admin-text);color:var(--admin-text);font-size:var(--fs-xl);display:flex;align-items:center;gap:8px}
#generic-modal .dialog-title .tag{font-size:9px;font-weight:800;letter-spacing:1px;color:#fff;-webkit-text-fill-color:#fff;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));padding:2px 8px;border-radius:var(--ui-radius,12px);vertical-align:middle}
#generic-modal .modal-body{display:grid;grid-template-columns:1fr 2fr;gap:20px;margin-top:16px;align-items:start}
#generic-modal .mb-col{min-width:0}
#generic-modal .mb-col + .mb-col{border-left:1px solid rgba(120,130,255,.14);padding-left:20px}
#generic-modal .form{display:grid;grid-template-columns:1fr 1fr;gap:13px 12px}
#generic-modal .form .full{grid-column:1/-1}
#generic-modal .cfg{display:flex;flex-direction:column;gap:16px}
#generic-modal .f-label{font-size:var(--fs-xs);color:var(--admin-text-muted);margin-bottom:5px;font-weight:700}
#generic-modal .f-label .req{color:var(--brand-rose)}
#generic-modal .f-wrap{position:relative}
#generic-modal .f-box{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:var(--ui-radius,12px);background:#fff;border:1.5px solid var(--admin-border-soft)!important;font-size:var(--fs-base);color:var(--admin-text);min-height:38px;transition:border-color .16s,box-shadow .16s}
#generic-modal .f-box:hover{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10)}
#generic-modal .f-box input,#generic-modal .f-box select{flex:1;min-width:0;border:none!important;outline:none;background:transparent;font-family:inherit;color:var(--admin-text)!important;box-shadow:none!important;height:auto;padding:0;margin:0;border-radius:0}
#generic-modal .f-box select{appearance:none;-webkit-appearance:none;cursor:pointer}
#generic-modal .caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:12px;height:12px;color:var(--admin-text-sub);pointer-events:none}
#generic-modal .pencil{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:7px;border-radius:var(--ui-radius,12px);cursor:pointer;color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));box-shadow:0 2px 8px rgba(var(--admin-accent-2-rgb),.4);transition:all .16s}
#generic-modal .pencil:hover{transform:scale(1.12)}
#generic-modal .pencil svg{width:12px;height:12px}
#generic-modal .photo{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:var(--ui-radius,12px);cursor:pointer;border:2px dashed rgba(var(--admin-accent-2-rgb),.5);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.05),rgba(var(--admin-accent-3-rgb),.06));transition:all .18s}
#generic-modal .photo:hover{border-color:var(--admin-accent-3);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.10),rgba(var(--admin-accent-3-rgb),.12))}
#generic-modal .photo-ico{width:44px;height:44px;border-radius:var(--ui-radius,12px);flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(var(--admin-accent-2-rgb),.38);overflow:hidden}
#generic-modal .photo-ico svg{width:22px;height:22px;color:#fff}
#generic-modal .photo-ico img{width:100%;height:100%;object-fit:cover}
#generic-modal .photo-txt{font-size:var(--fs-base);font-weight:600;color:var(--admin-text)}
#generic-modal .photo-txt .d-sub{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:400;margin-top:2px}
#generic-modal .sec-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
#generic-modal .sec-h b{font-size:var(--fs-base);font-weight:800;display:flex;align-items:center;gap:6px;color:var(--admin-text)}
#generic-modal .sec-h .t-ico{width:22px;height:22px;border-radius:var(--ui-radius,12px);color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));display:flex;align-items:center;justify-content:center}
#generic-modal .sec-h .t-ico svg{width:12px;height:12px}
#generic-modal .sec-h .sec-sub{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:400}
#generic-modal .tier-grid,#generic-modal .tier-row{display:grid;gap:8px;align-items:center;grid-template-columns:1fr 1fr 34px}
#generic-modal .tier-row.qp{grid-template-columns:1.4fr 1fr 1fr 34px}
#generic-modal .tier-head{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:700;padding:0 2px 6px}
#generic-modal .tier-row{margin-bottom:8px}
#generic-modal .tier-row input{width:100%;padding:8px 11px;font-family:inherit;border:1.5px solid var(--admin-border-soft)!important;background:#fff;color:var(--admin-text);outline:none;margin:0;transition:border-color .15s,box-shadow .15s}
#generic-modal .tier-row input:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10);background:#fff}
#generic-modal .tier-del{width:32px;height:32px;border-radius:var(--ui-radius,12px);cursor:pointer;border:1px solid var(--admin-border);background:#fff;color:var(--admin-text-sub);display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:var(--fs-lg);line-height:1;padding:0}
#generic-modal .tier-del:hover{color:var(--brand-rose);border-color:var(--brand-rose);background:rgba(var(--brand-rose-rgb),.08)}
#generic-modal .t-add{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px;border-radius:var(--ui-radius,12px);cursor:pointer;font-size:var(--fs-base);font-weight:700;color:var(--admin-accent-2);background:rgba(var(--admin-accent-2-rgb),.07);border:1px dashed rgba(var(--admin-accent-2-rgb),.5);transition:all .16s}
#generic-modal .t-add:hover{background:rgba(var(--admin-accent-2-rgb),.14)}
#generic-modal .t-add svg{width:12px;height:12px}
#generic-modal .mat-head{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:700;padding:0 2px 6px}
#generic-modal .spec-head{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:700;padding:0 2px 6px}
#generic-modal .product-material-row{display:grid;gap:8px;align-items:center;margin-bottom:8px;grid-template-columns:1.8fr 1fr 1fr 34px}
#generic-modal .product-spec-row{display:grid;gap:8px;align-items:start;margin-bottom:8px;grid-template-columns:minmax(70px,1fr) minmax(90px,1.1fr) 100px 100px 34px}
#generic-modal .product-material-row .pm-material,#generic-modal .product-material-row .pm-qty,#generic-modal .product-material-row .pm-unit,#generic-modal .product-spec-row .spec-name,#generic-modal .product-spec-row .spec-mode,#generic-modal .product-spec-row .spec-list-price,#generic-modal .product-spec-row .spec-cost{width:100%;background:#fff;border:1.5px solid var(--admin-border-soft)!important;padding:0 10px;margin:0;color:var(--admin-text)}
#generic-modal .product-material-row .pm-unit{background:var(--admin-surface-soft);color:var(--admin-text-sub);border:1.5px solid var(--admin-border-soft)!important}
#generic-modal .product-spec-row .spec-tiers{display:flex;flex-direction:column;gap:6px;grid-column:1/-1;grid-row:2}
#generic-modal .product-spec-row .spec-del{grid-column:5;grid-row:1}
#generic-modal .product-spec-row .tier-row .tier-price,#generic-modal .product-spec-row .tier-row .tier-standard-price{min-width:90px}
#generic-modal .product-spec-row .spec-tier-add{margin-top:6px;font-size:var(--fs-sm);padding:4px 10px;border:1px dashed rgba(var(--admin-accent-2-rgb),.5);background:rgba(var(--admin-accent-2-rgb),.07);border-radius:var(--ui-radius,12px);cursor:pointer;color:var(--admin-accent-2)}
#generic-modal .product-spec-row .spec-list-price{grid-column:3/5}#generic-modal .product-spec-row .spec-list-price.area-price{grid-column:auto}#generic-modal .product-spec-row .spec-cost,#generic-modal .product-spec-row .spec-list-price{max-width:none}
#generic-modal .pm-del,#generic-modal .spec-del{width:32px;height:32px;border-radius:var(--ui-radius,12px);cursor:pointer;border:1px solid rgba(120,130,255,.22);background:#fff;color:#a5abd8;display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:var(--fs-lg);line-height:1;padding:0}
#generic-modal .pm-del:hover,#generic-modal .spec-del:hover{color:var(--brand-rose);border-color:var(--brand-rose);background:rgba(var(--brand-rose-rgb),.08)}
#generic-modal .tier-del svg{width:13px;height:13px}
#generic-modal .pm-del svg,#generic-modal .spec-del svg{width:14px;height:14px}
#generic-modal .spec-del,#generic-modal .pm-del{color:var(--brand-rose-deep);border-color:rgba(var(--brand-rose-rgb),.28)}
#generic-modal .spec-del:hover,#generic-modal .pm-del:hover{color:#fff;background:var(--brand-rose-deep);border-color:var(--brand-rose-deep)}
#generic-modal .st-switch{display:flex;gap:8px}
#generic-modal .st-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:var(--ui-radius,12px);cursor:pointer;font-size:var(--fs-base);font-weight:700;color:var(--admin-text-muted);background:var(--admin-surface-soft);border:1px solid var(--admin-border);transition:all .16s}
#generic-modal .st-opt.on-on{color:var(--success-deep);background:#e2fbf1;border-color:rgba(var(--brand-emerald-rgb),.5);box-shadow:0 0 0 3px rgba(var(--brand-emerald-rgb),.12)}
#generic-modal .st-opt.on-off{color:var(--brand-rose-deep);background:#fdeaea;border-color:rgba(var(--brand-rose-rgb),.5);box-shadow:0 0 0 3px rgba(var(--brand-rose-rgb),.10)}
#generic-modal .info-note{display:flex;gap:7px;padding:9px 12px;border-radius:var(--ui-radius,12px);margin-top:14px;font-size:var(--fs-xs);line-height:var(--lh-relaxed);color:var(--admin-text-muted);background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.06),rgba(var(--admin-accent-2-rgb),.06));border:1px solid rgba(120,130,255,.24)}
#generic-modal .info-note svg{width:13px;height:13px;color:var(--admin-accent-2);flex-shrink:0;margin-top:1px}
#generic-modal .info-note b{color:var(--admin-accent-2)}
#generic-modal .form-actions{border-top:1px solid rgba(120,130,255,.14);padding-top:14px;margin-top:18px}
#generic-modal .form-actions .btn{font-weight:700}
#generic-modal .form-actions .btn.secondary{background:#fff;color:var(--admin-text-muted);border:1px solid var(--admin-border)}
#generic-modal .form-actions .btn.secondary:hover{color:var(--admin-text);box-shadow:0 4px 14px rgba(120,130,255,.18)}
@media (max-width:720px){#generic-modal .modal-body{grid-template-columns:1fr}#generic-modal .mb-col + .mb-col{border-left:none;padding-left:0;border-top:1px solid rgba(120,130,255,.14);padding-top:16px}}
@media (max-width:420px){#generic-modal .form{grid-template-columns:1fr}}
#generic-modal details.base-pricing{border:1px solid rgba(120,130,255,.22);border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.05),rgba(var(--admin-accent-2-rgb),.05));margin:0;overflow:hidden}
#generic-modal details.base-pricing>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:var(--fs-base);font-weight:800;color:var(--admin-text);user-select:none}
#generic-modal details.base-pricing>summary::-webkit-details-marker{display:none}
#generic-modal details.base-pricing>summary::before{content:'▸';display:inline-block;transition:transform .18s;color:var(--admin-accent-2);font-size:var(--fs-md);line-height:1}
#generic-modal details.base-pricing[open]>summary::before{transform:rotate(90deg)}
#generic-modal details.base-pricing .bp-sum{margin-left:auto;font-size:var(--fs-xs);font-weight:500;color:var(--admin-text-muted)}
#generic-modal details.base-pricing .bp-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 12px;padding:2px 14px 4px}
#generic-modal details.base-pricing .bp-tiers{border-top:1px dashed rgba(120,130,255,.25);margin:12px 14px 14px;padding-top:12px}
#generic-modal .tier-row .tier-range{display:flex;align-items:center;gap:6px;min-width:0}
#generic-modal .tier-row .tier-range input{flex:1;min-width:0}
#generic-modal .tier-row .tier-range span{color:var(--admin-text-muted);flex-shrink:0}

/* ============ 外协商「新增/修改外协商」弹窗 · 炫彩版（仅产品资料弹窗以外 data-kind="suppliers" 时生效）============ */
#generic-modal:has(#generic-form[data-kind="suppliers"]){background:linear-gradient(135deg,rgba(238,240,255,.88),rgba(246,247,254,.88))!important;backdrop-filter:blur(4px)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog{width:min(680px,94vw);padding:0;border:1px solid var(--admin-card-border);box-shadow:0 30px 80px -20px rgba(var(--admin-accent-2-rgb),.3)!important;overflow-y:auto!important;overflow-x:hidden!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog::before{display:none}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .close{top:18px;right:18px;width:34px;height:34px;border-radius:var(--ui-radius,12px);background:transparent;color:var(--admin-text-sub);font-size:var(--fs-2xl);line-height:1;display:flex;align-items:center;justify-content:center;transition:.2s}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .close:hover{background:#fee2e2;color:#ef4444;transform:rotate(90deg)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog-title{align-items:center;padding:20px 26px 16px;border-bottom:1px solid var(--admin-border-soft);margin-bottom:0;background:linear-gradient(180deg,rgba(var(--admin-accent-2-rgb),.06),transparent)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .title-icon{width:44px;height:44px;border-radius:var(--ui-radius,12px);flex:none;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);font-weight:900;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;color:#fff!important;border:none!important;box-shadow:0 6px 18px -4px rgba(var(--admin-accent-2-rgb),.5)!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog-title h2{font-size:var(--fs-xl);font-weight:900;letter-spacing:0;background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:var(--admin-text);color:var(--admin-text)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog-title h2 .accent{background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .dialog-title p{color:var(--admin-text-sub)!important;font-size:var(--fs-base);margin-top:2px}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #generic-form{padding:0}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;padding:16px 28px 20px}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label{display:block;font-size:var(--fs-base);font-weight:600;color:var(--admin-text-muted)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label .req{color:var(--brand-rose);margin-left:2px}#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>input, #generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>select{display:block;width:100%;margin-top:5px;border:1.5px solid var(--admin-border-soft)!important;!important;background:#fff;font-family:inherit;font-weight:400;color:var(--admin-text)!important;outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>textarea{display:block;width:100%;margin-top:5px;border:1.5px solid var(--admin-border-soft)!important;border-radius:var(--ui-radius,12px);height:auto;min-height:41px;padding:10px 13px;background:#fff;font-family:inherit;font-size:var(--fs-md);font-weight:400;color:var(--admin-text)!important;outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239C9BBE' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>textarea{min-height:70px;resize:vertical}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>input:focus,#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>select:focus,#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>textarea:focus{border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.12)!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>input::placeholder,#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid>label>textarea::placeholder{color:var(--admin-text-sub)!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid input[type=hidden]{display:none!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid .f-label{font-size:var(--fs-base);font-weight:600;color:var(--admin-text-muted);margin-bottom:0}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-avatar-row{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0 2px}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload{position:relative;width:72px;height:72px;border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,#e0e7ff,#fce7f3);border:2px solid #fff;box-shadow:0 4px 16px -4px rgba(var(--admin-accent-2-rgb),.25);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.25s;overflow:visible}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload:hover{transform:scale(1.05);box-shadow:0 6px 24px -4px rgba(var(--admin-accent-2-rgb),.4)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload img{width:100%;height:100%;border-radius:var(--ui-radius,12px);object-fit:cover;display:block}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload .emp-avatar{width:auto;height:auto;background:none!important;border:none!important;box-shadow:none!important;color:var(--admin-accent-2)!important;font-size:var(--fs-3xl);font-weight:900;line-height:1}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload .avatar-camera{position:absolute;bottom:-2px;right:-2px;width:26px;height:26px;border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));color:#fff;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:0}
#generic-modal:has(#generic-form[data-kind="suppliers"]) #supplier-avatar-upload .avatar-camera svg{width:12px;height:12px}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-avatar-hint{font-size:var(--fs-sm);color:var(--admin-text-sub)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-stars{display:flex;align-items:center;gap:4px;height:41px;margin-top:0}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-star{font-size:var(--fs-2xl);line-height:1;color:#c9cdea;cursor:pointer;transition:.15s;user-select:none}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-star:hover{transform:scale(1.2)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-star.on{color:var(--brand-amber);text-shadow:0 0 10px rgba(var(--brand-amber-rgb),.4)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-val{font-size:var(--fs-base);color:var(--admin-text-sub);margin-left:6px;font-weight:600}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-status{display:flex;gap:8px;height:41px;margin-top:0}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-chip{flex:1;border:1.5px solid var(--admin-border-soft);background:#fff;border-radius:var(--ui-radius,12px);font-family:inherit;font-size:var(--fs-base);color:var(--admin-text-muted);cursor:pointer;transition:.2s}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-chip:hover{border-color:#c9cdea}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-chip.on{border-color:transparent;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--brand-emerald-deep),var(--brand-emerald-dark));box-shadow:0 3px 10px -2px rgba(4,120,87,.4)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .sf-chip.on[data-v="0"]{background:linear-gradient(135deg,var(--brand-amber),#fbbf24);box-shadow:0 3px 10px -2px rgba(var(--brand-amber-rgb),.4)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions{justify-content:flex-end;display:flex;gap:10px;margin:0;padding:14px 28px;border-top:1px solid var(--admin-border-soft);background:linear-gradient(0deg,rgba(var(--admin-accent-2-rgb),.04),transparent)}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions .btn{padding:10px 26px;border-radius:var(--ui-radius,12px);font-size:var(--fs-lg);font-weight:600!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions .btn.secondary{background:#fff!important;border:1.5px solid var(--admin-border-soft)!important;color:var(--admin-text-muted)!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions .btn.secondary:hover{background:var(--admin-surface-soft)!important;color:var(--admin-text-muted)!important;box-shadow:none!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions .btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;border:none!important;color:#fff!important;padding:10px 36px;box-shadow:0 6px 20px -4px rgba(var(--admin-accent-2-rgb),.5)!important}
#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-actions .btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 28px -4px rgba(var(--admin-accent-2-rgb),.6)!important}
@media (max-width:600px){#generic-modal:has(#generic-form[data-kind="suppliers"]) .form-grid{grid-template-columns:1fr}}

/* ============ 产品列表「新增/修改产品」弹窗 · 炫彩卡片版（仅 data-kind="catalog_product" 时生效）============ */
#generic-modal:has(#generic-form[data-kind="catalog_product"]){background:linear-gradient(135deg,rgba(238,240,255,.9),rgba(246,247,254,.9))!important;backdrop-filter:blur(4px)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog{width:min(960px,94vw);max-height:94vh;padding:0;border:1px solid var(--admin-card-border);overflow:hidden!important;display:flex!important;flex-direction:column!important;box-shadow:0 30px 80px -20px rgba(var(--admin-accent-2-rgb),.3)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog::before{display:none}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .close{right:18px;top:18px;width:32px;height:32px;border-radius:var(--ui-radius,12px);display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);line-height:1;color:var(--admin-text-sub)!important;transition:.2s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .close:hover{background:#fee2e2;color:#ef4444!important;transform:rotate(90deg)}
/* 头部 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title{align-items:center;padding:18px 24px 14px;margin-bottom:0;border-bottom:1px solid var(--admin-border-soft)!important;background:linear-gradient(180deg,rgba(var(--admin-accent-2-rgb),.06),transparent)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .title-icon{display:flex!important;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ui-radius,12px);font-size:var(--fs-xl);font-weight:900;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;color:#fff!important;border:none!important;box-shadow:0 6px 16px -4px rgba(var(--admin-accent-2-rgb),.5)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title h2{display:flex;align-items:center;gap:8px;font-size:var(--fs-xl);font-weight:900;letter-spacing:0;background:none;color:var(--admin-text);-webkit-text-fill-color:var(--admin-text)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title h2 .accent{background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .dialog-title p{color:var(--admin-text-sub)!important;font-size:var(--fs-sm);margin-top:1px}
/* 主体：左右两列各自滚动 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #generic-form{padding:0;display:flex!important;flex-direction:column!important;flex:1;min-height:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #generic-fields{display:flex!important;flex-direction:column!important;flex:1;min-height:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .modal-body{display:grid!important;grid-template-columns:1fr 1fr;gap:0;margin-top:0;padding:0;align-items:stretch;flex:1;min-height:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col{padding:16px 20px;overflow-y:auto;min-height:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col:first-child{border-right:1px solid var(--admin-border-soft)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col + .mb-col{border-left:none!important;border-top:none!important;padding-left:20px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col::-webkit-scrollbar{width:5px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col::-webkit-scrollbar-thumb{background:#c9cdea;border-radius:var(--ui-radius,12px)}
/* 字段 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-label{font-size:var(--fs-sm);color:var(--admin-text-muted);font-weight:600;margin-bottom:5px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-label .req{color:var(--brand-rose)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form{grid-template-columns:1fr 1fr;gap:12px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box{height:36px;min-height:36px;padding:0 12px;background:#fff;border:1.5px solid var(--admin-border-soft)!important;border-radius:var(--ui-radius,12px)!important;transition:border-color .2s,box-shadow .2s}
/* 统一输入框高度：内部控件撑满 f-box，去掉自身边框与内边距（base.css 全局 36px 高度会撑高外壳） */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box input,
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box select{height:100%;min-height:0;padding:0;border:none!important;background:transparent!important;flex:1;min-width:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box .bt-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box:hover{border-color:#c9cdea!important;box-shadow:none}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box:focus-within{border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.12)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box input,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .f-box select{color:var(--admin-text)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .caret{color:var(--admin-text-sub)}
/* 所属业务类型 · 弹窗选择器 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #bt-trigger{cursor:pointer}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #bt-trigger .bt-value{flex:1;min-width:0;font-size:var(--fs-md);color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #bt-trigger:hover{border-color:#c9cdea!important;box-shadow:none}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) #bt-trigger:focus-visible{outline:none;border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.12)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker{position:absolute;inset:0;z-index:5;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(30,27,75,.3);backdrop-filter:blur(3px)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker.show{display:flex}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-card{width:min(520px,100%);max-height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);box-shadow:0 24px 60px -12px rgba(var(--admin-accent-2-rgb),.4);overflow:hidden}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-head{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--admin-border-soft);background:linear-gradient(180deg,rgba(var(--admin-accent-2-rgb),.06),transparent)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-ico{width:32px;height:32px;border-radius:var(--ui-radius,12px);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));box-shadow:0 4px 12px -3px rgba(var(--admin-accent-2-rgb),.5)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-ico svg{width:16px;height:16px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-head h3{font-size:var(--fs-lg);font-weight:800;color:var(--admin-text);margin:0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-head p{font-size:var(--fs-sm);color:var(--admin-text-sub);margin-top:1px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-close{margin-left:auto;width:30px;height:30px;border:none;border-radius:var(--ui-radius,12px);background:transparent;color:var(--admin-text-sub);font-size:var(--fs-2xl);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-close:hover{background:#fee2e2;color:#ef4444;transform:rotate(90deg)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-search{position:relative;margin:12px 18px 8px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--admin-text-sub)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-search input{width:100%;padding:0 12px 0 34px;font-family:inherit;color:var(--admin-text)!important;background:#fff;border:1.5px solid var(--admin-border-soft)!important;border-radius:var(--ui-radius,12px);outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-search input:focus{border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.12)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-search input::placeholder{color:var(--admin-text-sub)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-list{flex:1;min-height:0;max-height:300px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start;padding:0 18px 4px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-list::-webkit-scrollbar{width:5px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-list::-webkit-scrollbar-thumb{background:#c9cdea;border-radius:var(--ui-radius,12px)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:var(--fs-md);font-weight:500;color:var(--admin-text);text-align:left;background:#fff;border:1.5px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);cursor:pointer;transition:.18s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt svg{width:16px;height:16px;flex:none;opacity:0;color:var(--admin-accent-2)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt:hover{border-color:#c9cdea;background:var(--admin-surface-soft)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt.on{border-color:var(--admin-accent-2);font-weight:700;color:var(--brand-violet-deep);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.07),rgba(var(--admin-accent-2-rgb),.09))}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-opt.on svg{opacity:1}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-empty{grid-column:1/-1;font-size:var(--fs-base);color:var(--admin-text-sub);text-align:center;padding:24px 0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px;padding:12px 18px 16px;border-top:1px solid var(--admin-border-soft)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-actions .btn{padding:9px 24px;border-radius:var(--ui-radius,12px);font-size:var(--fs-md);font-weight:600}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-actions .btn.secondary{background:#fff!important;border:1.5px solid var(--admin-border-soft)!important;color:var(--admin-text-muted)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .ft-picker-actions .btn.secondary:hover{background:var(--admin-surface-soft)!important;color:var(--admin-text-muted)!important;box-shadow:none!important}
/* 产品照片 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;text-align:center;border:2px dashed #c9cdea;border-radius:var(--ui-radius,12px);background:var(--admin-surface-soft);transition:.25s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo:hover{border-color:var(--admin-accent-2);background:rgba(var(--admin-accent-2-rgb),.06)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-ico{width:28px;height:28px;border-radius:0;background:none!important;box-shadow:none!important;overflow:visible;display:flex;align-items:center;justify-content:center}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-ico svg{width:28px;height:28px;color:var(--admin-accent-2)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-ico:has(img){width:72px;height:72px;border-radius:var(--ui-radius,12px);overflow:hidden;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;box-shadow:0 4px 14px rgba(var(--admin-accent-2-rgb),.38)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-ico img{width:100%;height:100%;object-fit:cover;display:block}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-txt{font-size:var(--fs-md);font-weight:600;color:var(--admin-accent-2)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .photo-txt .d-sub{font-size:var(--fs-sm);font-weight:400;color:var(--admin-text-sub);margin-top:2px}
/* 分区卡片 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .cfg{gap:12px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .cfg > div{border:1px solid rgba(var(--admin-accent-2-rgb),.18);border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.04),rgba(var(--admin-accent-2-rgb),.04));padding:14px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .cfg > div:last-child{border:none;background:none;padding:4px 0 0}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing{border:1px solid rgba(var(--admin-accent-2-rgb),.18);border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.04),rgba(var(--admin-accent-2-rgb),.04))}
/* 分区标题 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .sec-h{justify-content:flex-start}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .sec-h b{font-size:var(--fs-base);font-weight:700;color:var(--admin-accent-2)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .sec-h .sec-sub{font-size:var(--fs-xs);color:var(--admin-text-sub)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .sec-h .t-ico,#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing summary .t-ico{width:22px;height:22px;border-radius:var(--ui-radius,12px);color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));display:flex;align-items:center;justify-content:center}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .sec-h .t-ico svg,#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing summary .t-ico svg{width:12px;height:12px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing>summary{font-size:var(--fs-base);font-weight:700;color:var(--admin-accent-2);align-items:center;gap:7px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing .bp-sum{margin-left:0;font-size:var(--fs-xs);font-weight:400;color:var(--admin-text-sub)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) details.base-pricing .bp-grid{gap:12px}
/* 表头 / 档位 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-grid,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-row{gap:8px;grid-template-columns:1fr 1fr 30px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-row.qp{grid-template-columns:1.4fr 1fr 1fr 30px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-head,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mat-head,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .spec-head{font-size:var(--fs-xs);color:var(--admin-text-sub);font-weight:600;padding:0 2px 6px;letter-spacing:.3px}
/* 表头网格：与对应输入行同列对齐（此前 .spec-grid/.mat-grid 无布局定义，表头被按块级堆叠成竖排） */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .spec-grid{display:grid;gap:8px;align-items:center;grid-template-columns:minmax(70px,1fr) minmax(90px,1.1fr) 100px 100px 34px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mat-grid{display:grid;gap:8px;align-items:center;grid-template-columns:1.8fr 1fr 1fr 34px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-row input{padding:6px 9px;color:var(--admin-text);border:1.5px solid var(--admin-border-soft)!important;border-radius:var(--ui-radius,12px)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-row input:focus{border-color:var(--admin-accent)!important;box-shadow:none}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-row .tier-range span{color:var(--admin-text-sub);}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-del,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .pm-del,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .spec-del{width:28px;height:28px;border-radius:var(--ui-radius,12px);border:none!important;background:transparent!important;color:var(--admin-text-sub)!important;display:flex;align-items:center;justify-content:center;transition:.2s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .tier-del:hover,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .pm-del:hover,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .spec-del:hover{background:#fee2e2!important;color:#ef4444!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-material-row .pm-material,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-material-row .pm-qty,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-material-row .pm-unit,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-spec-row .spec-name,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-spec-row .spec-mode,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-spec-row .spec-list-price,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-spec-row .spec-cost{color:var(--admin-text);padding:0 9px;border:1.5px solid var(--admin-border-soft)!important;}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-material-row .pm-unit{background:var(--admin-surface-soft)!important;color:var(--admin-text-sub)!important}
/* 添加按钮 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .t-add{width:100%;height:36px;display:flex;align-items:center;justify-content:center;padding:0;font-size:var(--fs-base);font-weight:600;color:var(--admin-accent-2);background:transparent;border:1.5px dashed #c9cdea;border-radius:var(--ui-radius,12px)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .t-add:hover{border-color:var(--admin-accent-2);background:rgba(var(--admin-accent-2-rgb),.05)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .product-spec-row .spec-tier-add{font-size:var(--fs-base);font-weight:600;color:var(--admin-accent-2);background:transparent;border:1.5px dashed #c9cdea;border-radius:var(--ui-radius,12px)}
/* 状态 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-opt{padding:11px;border-radius:var(--ui-radius,12px);border:2px solid var(--admin-border-soft);background:#fff;font-size:var(--fs-md);font-weight:600;color:var(--admin-text-muted);box-shadow:none;transition:.2s}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-opt:hover{border-color:#c9cdea}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-opt.on-off{background:#fff!important;border-color:var(--admin-border-soft)!important;color:var(--admin-text-muted)!important;box-shadow:none!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-opt.on-on{background:linear-gradient(135deg,#d1fae5,#a7f3d0)!important;border-color:var(--brand-emerald)!important;color:var(--brand-emerald-dark)!important;box-shadow:0 4px 14px -4px rgba(var(--brand-emerald-rgb),.4)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .st-opt.on-on[data-st="0"]{background:linear-gradient(135deg,#fee2e2,#fecaca)!important;border-color:#ef4444!important;color:#991b1b!important;box-shadow:0 4px 14px -4px rgba(239,68,68,.3)!important}
/* 提示条 / 底部 */
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .info-note{flex:none;margin:0 20px 12px;padding:9px 14px;border-radius:var(--ui-radius,12px);font-size:var(--fs-sm);line-height:var(--lh-normal);color:#0e7490;background:rgba(var(--admin-accent-rgb),.08);border:1px solid rgba(var(--admin-accent-rgb),.2)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .info-note svg,#generic-modal:has(#generic-form[data-kind="catalog_product"]) .info-note b{color:var(--admin-accent)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form-actions{flex:none;margin-top:0;padding:14px 24px;border-top:1px solid var(--admin-border-soft);background:linear-gradient(0deg,rgba(var(--admin-accent-2-rgb),.04),transparent)}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form-actions .btn{padding:9px 24px;border-radius:var(--ui-radius,12px);font-size:var(--fs-md);font-weight:600}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form-actions .btn.secondary{background:#fff!important;border:1.5px solid var(--admin-border-soft)!important;color:var(--admin-text-muted)!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form-actions .btn.secondary:hover{background:var(--admin-surface-soft)!important;color:var(--admin-text-muted)!important;box-shadow:none!important}
#generic-modal:has(#generic-form[data-kind="catalog_product"]) .form-actions .btn.primary{padding:9px 32px;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important}
@media (max-width:860px){#generic-modal:has(#generic-form[data-kind="catalog_product"]) .modal-body{grid-template-columns:1fr}#generic-modal:has(#generic-form[data-kind="catalog_product"]) .mb-col:first-child{border-right:none;border-bottom:1px solid var(--admin-border-soft)}}

/* ============ 外协商「新增产品报价」弹窗 · 与产品列表弹窗保持一致 ============ */
#product-modal .dialog{padding:0;width:min(960px,94vw);max-height:92vh;overflow-y:auto!important;overflow:hidden;position:relative}
#product-modal .dialog::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));z-index:1}
#product-modal .dialog-title{padding:20px 24px 14px;border-bottom:none;margin-bottom:0}
#product-modal .title-icon{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;color:#fff!important;box-shadow:0 6px 16px rgba(var(--admin-accent-rgb),.35)!important}
#product-modal .dialog-title h2{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:var(--admin-text);color:var(--admin-text);font-size:var(--fs-xl);font-weight:800}
#product-modal .dialog-title p{color:var(--admin-text-sub)}
#product-modal #product-form{padding:0 24px 20px}
#product-modal .modal-body{display:grid;grid-template-columns:1fr 2fr;gap:20px;margin-top:16px;align-items:start}
#product-modal .mb-col{min-width:0}
#product-modal .mb-col + .mb-col{border-left:1px solid rgba(120,130,255,.14);padding-left:20px}
#product-modal .form{display:grid;grid-template-columns:1fr 1fr;gap:13px 12px}
#product-modal .form .full{grid-column:1/-1}
#product-modal .cfg{display:flex;flex-direction:column;gap:16px}
#product-modal .f-label{font-size:var(--fs-xs);color:var(--admin-text-muted);margin-bottom:5px;font-weight:700}
#product-modal .f-wrap{position:relative}
#product-modal .f-box{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:var(--ui-radius,12px);background:#fff;border:1.5px solid var(--admin-border-soft)!important;font-size:var(--fs-base);color:var(--admin-text);min-height:38px;transition:border-color .16s,box-shadow .16s}
#product-modal .f-box:hover{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10)}#product-modal .f-box input, #product-modal .f-box select{flex:1;min-width:0;border:none!important;outline:none;background:transparent;font-family:inherit;color:var(--admin-text)!important;box-shadow:none!important;height:auto;padding:0;margin:0;border-radius:0;width:100%}
#product-modal .f-box textarea{flex:1;min-width:0;border:none!important;outline:none;background:transparent;font-size:var(--fs-base);font-family:inherit;color:var(--admin-text)!important;box-shadow:none!important;height:auto;padding:0;margin:0;border-radius:0;width:100%}
#product-modal .f-box select{appearance:none;-webkit-appearance:none;cursor:pointer}
#product-modal .f-box textarea{min-height:58px;resize:vertical;padding:4px 0;align-self:flex-start}
#product-modal .caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:12px;height:12px;color:var(--admin-text-sub);pointer-events:none}
#product-modal .photo{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 16px;border-radius:var(--ui-radius,12px);cursor:pointer;border:2px dashed rgba(var(--admin-accent-2-rgb),.5);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.05),rgba(var(--admin-accent-3-rgb),.06));transition:all .18s;font-size:var(--fs-base);font-weight:700;color:var(--brand-violet);width:100%}
#product-modal .photo:hover{border-color:var(--admin-accent-3);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.10),rgba(var(--admin-accent-3-rgb),.12))}
#product-modal .sec-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}
#product-modal .sec-h b{font-size:var(--fs-base);font-weight:800;display:flex;align-items:center;gap:6px;color:var(--admin-text)}
#product-modal .sec-h .t-ico{width:22px;height:22px;border-radius:var(--ui-radius,12px);color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700}
#product-modal .tier-grid,#product-modal .tier-row{display:grid;gap:8px;align-items:center;grid-template-columns:1fr 1fr 1fr 1fr 34px}
#product-modal .tier-head{font-size:var(--fs-xs);color:var(--admin-text-muted);font-weight:700;padding:0 2px 6px}
#product-modal .tier-row{margin-bottom:8px}
#product-modal .tier-row input{width:100%;padding:8px 11px;font-family:inherit;border:1.5px solid var(--admin-border-soft)!important;background:#fff;color:var(--admin-text);outline:none;margin:0;transition:border-color .15s,box-shadow .15s}
#product-modal .tier-row input:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10);background:#fff}
#product-modal .tier-del{width:32px;height:32px;border-radius:var(--ui-radius,12px);cursor:pointer;border:1px solid var(--admin-border);background:#fff;color:var(--admin-text-sub);display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}
#product-modal .tier-del:hover{color:var(--brand-rose);border-color:var(--brand-rose);background:rgba(var(--brand-rose-rgb),.08)}
#product-modal .tier-del svg{width:13px;height:13px}
#product-modal .t-add{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px;border-radius:var(--ui-radius,12px);cursor:pointer;font-size:var(--fs-base);font-weight:700;color:var(--admin-accent-2);background:rgba(var(--admin-accent-2-rgb),.07);border:1px dashed rgba(var(--admin-accent-2-rgb),.5);transition:all .16s}
#product-modal .t-add:hover{background:rgba(var(--admin-accent-2-rgb),.14)}
#product-modal .form-actions{border-top:1px solid rgba(120,130,255,.14);padding-top:14px;margin-top:18px}
#product-modal .form-actions .btn{font-weight:700}
#product-modal .form-actions .btn.secondary{background:#fff;color:var(--admin-text-muted);border:1px solid var(--admin-border)}
#product-modal .form-actions .btn.secondary:hover{color:var(--admin-text);box-shadow:0 4px 14px rgba(var(--admin-accent-rgb),.16)}
#product-modal .btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-2-rgb),.42)!important;border:none!important}
#product-modal .btn.primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-1px)}
#product-modal .single-price-field{display:block}
#product-modal .single-price-field[hidden]{display:none}
@media (max-width:720px){#product-modal .modal-body{grid-template-columns:1fr}#product-modal .mb-col + .mb-col{border-left:none;padding-left:0;border-top:1px solid rgba(120,130,255,.14);padding-top:16px}}
@media (max-width:420px){#product-modal .form{grid-template-columns:1fr}}

/* 报价弹窗阶梯档位：嵌套结构（规格块 + 每规格下多个档位） */
#product-modal .supplier-spec-block{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 34px;gap:8px;align-items:start;margin-bottom:10px;padding:10px 12px;border:1px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);background:var(--admin-surface-soft)}
#product-modal .supplier-spec-block .tier-spec{width:100%;height:38px;padding:8px 11px;border-radius:var(--ui-radius,12px);font-size:var(--fs-base);font-family:inherit;border:1.5px solid var(--admin-border-soft)!important;background:#fff;color:var(--admin-text);outline:none;margin:0;transition:border-color .15s,box-shadow .15s}
#product-modal .supplier-spec-block .tier-spec:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10);background:#fff}
#product-modal .supplier-spec-block .spec-del{width:32px;height:32px;border-radius:var(--ui-radius,12px);cursor:pointer;border:1px solid rgba(var(--brand-rose-rgb),.28);background:#fff;color:var(--brand-rose-deep);display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}
#product-modal .supplier-spec-block .spec-del:hover{color:#fff;background:var(--brand-rose-deep);border-color:var(--brand-rose-deep)}
#product-modal .supplier-spec-block .spec-del svg{width:14px;height:14px}
#product-modal .supplier-spec-body{grid-column:1/-1;display:flex;flex-direction:column;gap:6px}
#product-modal .supplier-spec-body .tier-row{display:grid;grid-template-columns:minmax(80px,1.2fr) minmax(60px,1fr) minmax(60px,1fr) minmax(70px,1fr) minmax(70px,1fr) 32px;gap:6px;align-items:center}
#product-modal .supplier-spec-body .tier-row input{width:100%;padding:8px 11px;border-radius:var(--ui-radius,12px);font-family:inherit;border:1.5px solid var(--admin-border-soft)!important;background:#fff;color:var(--admin-text);outline:none;margin:0;transition:border-color .15s,box-shadow .15s}
#product-modal .supplier-spec-body .tier-row input:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.10);background:#fff}
#product-modal .supplier-spec-body .tier-del{width:32px;height:32px;border-radius:var(--ui-radius,12px);cursor:pointer;border:1px solid var(--admin-border);background:#fff;color:var(--admin-text-sub);display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}
#product-modal .supplier-spec-body .tier-del:hover{color:var(--brand-rose);border-color:var(--brand-rose);background:rgba(var(--brand-rose-rgb),.08)}
#product-modal .supplier-spec-body .tier-del svg{width:13px;height:13px}
#product-modal .supplier-spec-body .tier-range{display:flex;align-items:center;gap:4px;min-width:0;grid-column:2/4}
#product-modal .supplier-spec-body .tier-range input{flex:1;min-width:0}
#product-modal .supplier-spec-body .tier-range span{color:var(--admin-text-muted);flex-shrink:0}
#product-modal .supplier-spec-block.qp .supplier-spec-body .tier-row{grid-template-columns:minmax(140px,1.4fr) minmax(70px,1fr) minmax(70px,1fr) 32px}
#product-modal .supplier-spec-block.qp .supplier-spec-body .tier-range{grid-column:1/2}
#product-modal .supplier-spec-block.qp .supplier-spec-head{display:flex;gap:8px;align-items:center;margin-bottom:6px}
#product-modal .supplier-spec-block.qp .supplier-spec-head .tier-spec{flex:1}
#product-modal .spec-tier-add{margin-top:6px;font-size:var(--fs-sm);padding:4px 12px;border:1px dashed rgba(var(--admin-accent-2-rgb),.5);background:rgba(var(--admin-accent-2-rgb),.07);border-radius:var(--ui-radius,12px);cursor:pointer;color:var(--admin-accent-2);align-self:flex-start}
#product-modal .spec-tier-add:hover{background:rgba(var(--admin-accent-2-rgb),.14)}
#product-modal .supplier-spec-block.size{grid-template-columns:1.4fr 1fr 1fr 34px}
#product-modal .supplier-spec-block.size .tier-spec,#product-modal .supplier-spec-block.size .tier-price,#product-modal .supplier-spec-block.size .tier-standard-price{width:100%;padding:8px 11px;font-family:inherit;border:1.5px solid var(--admin-border-soft)!important;background:#fff;color:var(--admin-text);outline:none;margin:0;transition:border-color .15s,box-shadow .15s}
#product-modal .supplier-spec-block.size .tier-price,#product-modal .supplier-spec-block.size .tier-standard-price{max-width:90px;justify-self:start}
#product-modal .supplier-spec-block .tier-range{display:flex;align-items:center;gap:6px;min-width:0;grid-column:1/3}
#product-modal .supplier-spec-block .tier-range input{flex:1;min-width:0}
#product-modal .supplier-spec-block .tier-range span{color:var(--admin-text-muted);flex-shrink:0}

/* 产品类型树容器内距（原 business-type-tree.css，随空壳文件清理迁入）*/
.business-tree-body{padding:10px 18px 16px}
