/* 千相 Chimera · UI 统一层 v2
 * 加载在所有页面 CSS 之后，用来收敛页面级覆盖，保证：
 * - 控件高度/字号一致（桌面 40px，移动 44px）
 * - 标题层级只用 6 档字号
 * - 点击区满足 24px（移动 44px）
 */

/* ---------- 控件尺寸 ---------- */
.input,
select,
textarea,
.build-name-input,
.gun-name-input,
.summary-input,
.slot-discount-input {
  height: var(--control-h) !important;
  min-height: var(--control-h) !important;
  font-size: var(--font-base) !important;
  border-radius: var(--control-radius) !important;
}
textarea,
textarea.input {
  height: auto !important;
  min-height: 96px !important;
  padding: 10px var(--control-pad-x) !important;
}
.btn {
  height: var(--control-h) !important;
  min-height: var(--control-h) !important;
  font-size: var(--font-base) !important;
}
.btn-sm {
  height: var(--control-h-sm) !important;
  min-height: var(--control-h-sm) !important;
  font-size: var(--font-sm) !important;
}
.mode-btn {
  height: var(--control-h-sm) !important;
  min-height: var(--control-h-sm) !important;
  font-size: var(--font-sm) !important;
}
.sp-move-btn {
  height: var(--control-h-sm) !important;
  min-height: var(--control-h-sm) !important;
  min-width: var(--control-h-sm) !important;
  font-size: var(--font-md) !important;
}
.btn-link {
  display: inline-flex;
  align-items: center;
  min-height: 24px !important;
  padding: 2px 0 !important;
  font-size: var(--font-base) !important;
}
.sp-switch input {
  width: 40px !important;
  height: 24px !important;
}

/* ---------- 宽度 ---------- */
.search-input { width: 280px !important; }
.build-name-input { width: 200px !important; }
.gun-name-input { width: 180px !important; }
.summary-input, .input-num { width: 120px !important; }
.slot-discount-input { width: 88px !important; }

/* ---------- 标题层级（6 档内） ---------- */
.page-head h1 { font-size: var(--font-xl) !important; line-height: 1.3 !important; }
.page-head p { font-size: var(--font-sm) !important; }
.section-head h2,
.build-panel-head h2,
.empty-state h2,
.parts-empty h3,
.build-error h2,
.sp-page h2,
.sp-page h3 {
  font-size: var(--font-md) !important;
}
.summary-total-value { font-size: var(--font-2xl) !important; line-height: 1.2 !important; }

/* ---------- 辅助文字（12/13） ---------- */
.summary-total-label,
.summary-total-hint,
.summary-hint,
.summary-label,
.summary-unit,
.summary-extra,
.gun-stat-label,
.gun-stat,
.slot-req,
.slot-summary,
.filter-field label,
.filter-field .input,
.inline-field,
.sp-tab-count,
.sp-card-sub,
.parts-table td::before,
.orders-table tr.order-row td::before,
.sp-table-cards td::before,
.gun-items-table .part-meta {
  font-size: var(--font-xs) !important;
}
.inline-field,
.filter-field label,
.sp-card-sub,
.summary-label,
.gun-stat,
.slot-summary {
  font-size: var(--font-sm) !important;
}

/* ---------- 表格 / 徽章 ---------- */
.table th { font-size: var(--font-sm) !important; padding: var(--space-3) !important; }
.table td { font-size: var(--font-base) !important; padding: var(--space-3) !important; }
.badge { font-size: var(--font-xs) !important; }
.gun-items-table { font-size: var(--font-base) !important; }
.gun-items-table .part-meta { font-size: var(--font-xs) !important; }

/* ---------- 空态图标统一 ---------- */
.ph-icon,
.empty-icon,
.parts-empty-icon,
.sp-empty-icon {
  font-size: var(--font-2xl) !important;
  line-height: 1 !important;
}

/* ---------- 提示条 / 原型徽章（收敛配色） ---------- */
.prototype-badge {
  background: var(--surface-muted) !important;
  color: var(--warn) !important;
}

/* ---------- 移动端 ---------- */
@media (max-width: 767px) {
  .btn,
  .btn-sm,
  .mode-btn,
  .sp-move-btn,
  .input,
  select,
  textarea,
  .build-name-input,
  .gun-name-input,
  .summary-input,
  .slot-discount-input {
    height: var(--control-h-touch) !important;
    min-height: var(--control-h-touch) !important;
  }
  .sp-move-btn { min-width: var(--control-h-touch) !important; }
  .sp-switch input { width: 44px !important; height: 26px !important; }
  .sp-switch label { min-height: var(--control-h-touch); }
  .search-input,
  .build-name-input,
  .gun-name-input {
    width: 100% !important;
  }
  .summary-input,
  .slot-discount-input,
  .input-num {
    width: 120px !important;
  }
}

/* ---------- 全局按钮/工具条对齐统一（2026-10-30） ---------- */
.toolbar .spacer,
.card-head .spacer,
.section-head .spacer {
  flex: 1 1 auto;
}
.table th.actions,
.table td.actions {
  text-align: right;
}
.build-actions {
  justify-content: flex-end;
}
.build-actions .btn {
  flex: 0 0 auto;
}
.build-picker .search-input {
  width: 100% !important;
}
@media (max-width: 767px) {
  .build-actions .btn {
    flex: 1 1 auto;
  }
}

/* ---------- 线性图标（禁止 emoji 结构图标） ---------- */
.ui-icon {
  display: inline-block;
  vertical-align: middle;
  flex: none;
}
.empty-icon .ui-icon,
.parts-empty-icon .ui-icon,
.sp-empty-icon .ui-icon {
  width: 24px;
  height: 24px;
}
.build-error-icon .ui-icon {
  width: 32px;
  height: 32px;
}
.lock-icon {
  display: inline-flex;
  align-items: center;
  color: var(--warn);
  flex: none;
}
.lock-icon .ui-icon {
  width: 16px;
  height: 16px;
}

/* ---------- 键盘焦点可见（无障碍） ---------- */
a:focus-visible,
button:focus-visible,
.input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ---------- 移动端：订单明细表转卡片（避免横向滚动） ---------- */
@media (max-width: 767px) {
  .gun-items-wrap {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }
  .gun-items-table {
    display: block !important;
    min-width: 0 !important;
  }
  .gun-items-table thead { display: none; }
  .gun-items-table tbody,
  .gun-items-table tr,
  .gun-items-table td { display: block; width: 100%; }
  .gun-items-table tr {
    padding: 8px 0;
    border-bottom: 1px dashed var(--border);
  }
  .gun-items-table tr:last-child { border-bottom: 0; }
  .gun-items-table td {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 0;
    border: 0;
    text-align: right;
    white-space: normal;
  }
  .gun-items-table td::before {
    content: attr(data-label);
    flex: none;
    color: var(--text-muted);
    font-size: var(--font-xs);
    font-weight: 600;
    text-align: left;
  }
  .gun-items-table td[data-label="配件"] {
    display: block;
    padding-bottom: 4px;
    text-align: left;
  }
  .gun-items-table td[data-label="配件"]::before { display: none; }
}

/* ---------- 行内折扣输入：紧凑尺寸（方案 B） ---------- */
.slot-discount-input {
  width: 52px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 8px !important;
  font-size: var(--font-sm) !important;
  text-align: right;
}
@media (max-width: 767px) {
  .slot-discount-display {
    min-height: 44px;
  }
  .slot-discount-input {
    width: 64px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
}


/* 移动端卡片行：覆盖全局表格单元格 12px 内边距，避免卡片被撑高/错位 */
@media (max-width: 767px) {
  .parts-table td,
  .sp-table-cards td,
  .orders-table tr.order-row td,
  .gun-items-table td { padding: 4px 0 !important; }
  .parts-table td.part-name,
  .sp-table-cards td.sp-cell-main { padding: 12px 0 8px !important; }
  .orders-table tr.order-row td.actions { padding-top: 8px !important; }
  .parts-table td.actions,
  .sp-table-cards td.sp-cell-actions { padding-top: 8px !important; }
}
