/* ============================================================================
 * 主資料管理（MDM）模組樣式 — UX 規格 v2.0 §5.1
 *
 * 原則：能用共用元件（iso-shell.css）就不要在這裡寫。這一支只補三件共用元件
 * 沒有、而 §5.1 需要的東西：列表內的「疑似重複」小標、列操作按鈕群、
 * AI 建議卡被拒絕後的視覺狀態。顏色一律取 tokens.css 的變數，不自己調色。
 * 對比度：警告字色用 --iso-warning-fg-aa（#8A5A00 on #FFF8E1 = 5.58:1）。
 * ==========================================================================*/

/* 🔴 共用元件缺陷的本地修補（已回報殼作者，勿在此處「順手」去改共用檔）
 * iso-shell.css:54 的 `.iso-content a { color: var(--iso-brand) }` 權重是 (0,1,1)，
 * 壓過 `.iso-btn--primary`（0,1,0），所以只要按鈕是 <a> 而不是 <button>，
 * 文字就會變成紫字壓在紫底上 —— 實測「＋新增客戶」整顆按鈕看不到字（對比 1.0:1，
 * 違反 UX §8.2 的 4.5:1）。本模組的「新增」與「返回列表」照 Odoo 慣例必須是連結
 * （可中鍵開新分頁），所以在這裡用同權重的選擇器補回按鈕該有的文字色。 */
.iso-content a.iso-btn--primary,
.iso-content a.iso-btn--danger { color: #fff; }
.iso-content a.iso-btn--secondary { color: var(--iso-brand); }
.iso-content a.iso-btn--ghost,
.iso-content a.iso-btn--icon { color: var(--iso-text); }

/* 🔴 共用元件缺陷的本地修補 2（已回報殼作者）
 * iso-shell.css 的行動版把 `.iso-table tr` 改成 `display: block` 來做表格轉卡片，
 * 但這條作者樣式會壓過瀏覽器內建的 `[hidden] { display: none }`，於是分頁元件
 * 設 `tr.hidden = true` 之後那些列在手機上照樣顯示 —— 實測 390px 下 15 筆客戶
 * 全部畫出來，分頁形同失效（桌面正常）。同樣影響搜尋與過濾的隱藏。 */
@media (max-width: 767px) {
  .iso-table tr[hidden] { display: none; }
}

/* 列表內的疑似重複標記（PRD §7.3 MD-03） */
.mdm-dupe {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 1px 6px;
  border: 1px solid var(--iso-warning-fg-aa);
  border-radius: var(--iso-radius-sm);
  background: var(--iso-warning-bg);
  color: var(--iso-warning-fg-aa);
  font-size: var(--iso-fs-caption);
  white-space: nowrap;
}

/* 低於門檻的履約率（供應商列表） */
.mdm-warn { color: var(--iso-danger-fg); font-weight: 500; }

/* 列操作：桌面靠右一排圖示鈕；行動版由共用 CSS 轉成卡片內的一列 */
.mdm-ops { white-space: nowrap; }
.mdm-ops .iso-btn { margin-inline-start: 2px; }
@media (max-width: 767px) {
  .mdm-ops { justify-content: flex-end; }
  .mdm-ops .iso-btn { margin-inline-start: var(--iso-space-2); }
}

/* AI 建議卡：採納／不採納的按鈕列與「已拒絕」狀態（UX §6.14 須記錄使用者動作） */
.mdm-ai-acts { margin-top: var(--iso-space-3); gap: var(--iso-space-2); }
.iso-ai-card.is-rejected { opacity: .6; }
.iso-ai-card.is-rejected .iso-ai-card__list { text-decoration: line-through; }
/* 信心 < 60%（信封的 needs_human）：整張卡片改紅框，UX 附錄 A 不自動採用 */
.iso-ai-card.is-low { border-color: var(--iso-danger-fg); }

/* AI 卡片標題列右側：信心分數 + 來源標籤（.iso-ai-src 由 iso-ai.css 上色）。
 * .iso-conf 自帶 margin-inline-start:auto，包進這個 span 之後要把它交還給外層，
 * 否則兩個標籤會被推開。 */
.mdm-ai-meta {
  margin-inline-start: auto;
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.mdm-ai-meta .iso-conf { margin-inline-start: 0; }
/* 去重卡片上方的那一列（不在 flex 標題列裡，靠右對齊） */
.iso-row.mdm-ai-meta { margin-inline-start: 0; justify-content: flex-end; margin-bottom: var(--iso-space-2); }

/* 載入狀態（UX §6.8）：超過 3 秒才補上的進度提示，換行放在 spinner 文字下方 */
.mdm-ai-busy__text { display: inline-flex; flex-direction: column; gap: 2px; }
.mdm-ai-busy__hint { color: var(--iso-text-muted); }

/* 欄位旁的去重提示：共用元件只在 .is-dupe 時顯示，
 * 但「判斷中」與「未發現重複」也必須看得見，所以自己撐開並換成對應語義色。 */
.iso-field__dupe.mdm-dupe-box { display: flex; }
.iso-field__dupe.mdm-dupe-box.is-busy {
  background: var(--iso-info-bg); color: var(--iso-info-fg);
}
.iso-field__dupe.mdm-dupe-box.is-ok {
  background: var(--iso-success-bg); color: var(--iso-success-fg);
}

/* 相似主檔比對區 */
.mdm-twin { margin: var(--iso-space-3) 0; }
.mdm-twin-acts { gap: var(--iso-space-2); flex-wrap: wrap; }
/* 模型給的判斷理由與建議動作 */
.mdm-twin-why { margin: var(--iso-space-3) 0; padding-inline-start: 18px; }
.mdm-twin-why li { margin: 4px 0; }

/* 標準字典（MD-01）與分頁籤內的表格：卡片內不再加圓角外框 */
.mdm-subtable .iso-table { border: 0; }

/* 表單頁分區之間的距離 */
.mdm-form .iso-section { margin-bottom: var(--iso-space-6); }

/* 行動版：分區標題不要被擠到斷行（實測 390px 下「基本資料」會斷成「基本資／料」） */
@media (max-width: 767px) {
  .mdm-form .iso-section__head { flex-wrap: wrap; }
  .mdm-form .iso-section__title { white-space: nowrap; }
  .mdm-form .iso-section__hint { flex: 1 1 100%; }
}

/* 載入中提示（資料抓回來前的暫時內容） */
.mdm-loading { padding: var(--iso-space-6); }
