/* ============================================================================
 * iso2erp 採購管理模組樣式（UX 規格 v2.0 §5.2）
 * 只補共用元件沒有的東西：表格內的輸入欄寬、AI 自動填入／超量標示、逾期標籤。
 * 顏色一律用 tokens 與殼定義的變數，不自己發明色票（§8.2 對比度 ≥ 4.5:1）。
 * ==========================================================================*/

/* 🔴 修正一個殼層級的踩雷（已回報殼作者，這裡先自救、不改共用檔）：
 * iso-shell.css 的 `.iso-content a { color: var(--iso-brand) }` 特異性(0,1,1)
 * 高於 `.iso-btn--primary { color:#fff }`(0,1,0)，所以內容區裡凡是用 <a> 做的
 * 主要按鈕都會變成「紫底紫字」——文字對比 1:1，等於看不見（實測 Playwright 稽核抓到）。
 * 這裡把連結型按鈕的文字色補回來，維持 UX §8.2 對比度 ≥ 4.5:1。 */
.iso-content a.iso-btn--primary,
.iso-content a.iso-btn--danger { color: #fff; }
.iso-content a.iso-btn--ghost,
.iso-content a.iso-btn--icon { color: var(--iso-text); }
.iso-content a.iso-btn--secondary { color: var(--iso-brand); }

/* 🔴 第二個踩雷（同樣回報殼作者）：HTML 的 hidden 屬性只有 UA 樣式 display:none，
 * 特異性最低，會被 `.iso-btn{display:inline-flex}`、`.iso-alert{display:flex}`、
 * `.iso-ai-tag{display:inline-flex}` 直接蓋掉——結果是「應該藏起來的按鈕與警示框照樣顯示」。
 * 實測：草稿狀態的表單把「通過／駁回／發送訂單」全露出來了（第一版截圖抓到）。 */
.iso-content [hidden] { display: none !important; }

/* 附件：原生 file input 的按鈕文字由瀏覽器語系決定（會出現英文 Choose File），
 * 全站繁體中文的要求下改用自訂 label 觸發，input 本身保留在無障礙樹裡可鍵盤操作。 */
.pur-file { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pur-file:focus-visible + .pur-file-label { outline: 2px solid var(--iso-brand); outline-offset: 2px; }

/* 表格內的表單控制項寬度（桌面用固定寬，行動版轉卡片時自動縮） */
.pur-w-item  { min-width: 220px; }
.pur-w-qty   { max-width: 110px; text-align: end; }
.pur-w-price { max-width: 130px; text-align: end; }
.pur-w-wh    { min-width: 170px; }

/* 一列操作按鈕不要換行擠開表格 */
.pur-acts { flex-wrap: nowrap; gap: 4px; }

/* AI 自動填入的欄位（UX 附錄 D：紫色）—— 對應共用的 .iso-field.is-ai，
   但表格儲存格裡沒有 .iso-field 包裹，所以自己給一個等效的 class。 */
.pur-ai-input {
  border-color: var(--iso-ai-border);
  background: #FDFAFE;
}

/* AI 標示異常的數量欄（UX 附錄 D：紅框）*/
.pur-over-input {
  border-color: var(--iso-danger-fg);
  background: var(--iso-danger-bg);
  color: var(--iso-danger-fg);
  font-weight: 600;
}
.pur-flagged td[data-rc-mark] { vertical-align: top; }

/* ── AI 區塊（真的呼叫模型；契約 docs/ISO2ERP_AI_CONTRACT.md）──────────────
 * 來源標籤（.iso-ai-src）與誠實框（.iso-ai-honest）由共用的 iso-ai.css 負責，
 * 這裡只補本模組自己要的東西：卡片頭的右側對齊、綠／黃／紅建議、風險區、
 * 等待進度提示、異常嚴重度。顏色一律用既有語義 token。*/
.pur-ai-head-right { margin-inline-start: auto; }

.pur-verdict {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; border-radius: var(--iso-radius-md);
  border: 1px solid; margin-bottom: var(--iso-space-3);
  font-size: var(--iso-fs-form-body);
}
.pur-verdict strong { font-weight: 600; }
.pur-verdict .iso-caption { margin-inline-start: auto; }
.pur-verdict.is-green  { background: var(--iso-success-bg); color: var(--iso-success-fg); border-color: var(--iso-success-fg); }
.pur-verdict.is-yellow { background: var(--iso-warning-bg); color: var(--iso-warning-fg-aa, #8A5A00); border-color: #C79A2E; }
.pur-verdict.is-red    { background: var(--iso-danger-bg);  color: var(--iso-danger-fg);  border-color: var(--iso-danger-fg); }
.pur-verdict.is-green .iso-caption,
.pur-verdict.is-yellow .iso-caption,
.pur-verdict.is-red .iso-caption { color: inherit; }

.pur-ai-risks { margin-top: var(--iso-space-3); }
.pur-ai-risks__title {
  display: flex; align-items: center; gap: 6px;
  font-weight: 600; color: var(--iso-warning-fg-aa, #8A5A00);
}

/* 等待模型時的進度提示（UX §6.8：3–10 秒要看得到系統還活著）*/
.pur-ai-progress {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 6px; font-size: var(--iso-fs-caption); color: var(--iso-text-muted);
}

/* 進貨異常的嚴重度：高＝紅框、中＝黃框、低＝維持預設 */
.pur-sev--high   { border-color: var(--iso-danger-fg); }
.pur-sev--medium { border-color: #C79A2E; }

/* 信心 < 60%：整張卡片標成「待人工處理」（UX 附錄 A）*/
.iso-ai-card.is-low { border-color: var(--iso-danger-fg); }

/* 逾期交貨標籤（PRD §7.4 PO-05 逾期預警）*/
.pur-overdue {
  display: inline-flex; align-items: center; gap: 4px;
  margin-inline-start: 6px;
  padding: 1px 7px; border-radius: 999px;
  background: var(--iso-warning-bg); color: var(--iso-warning-fg-aa);
  border: 1px solid #FFE7A0;
  font-size: var(--iso-fs-status-tag); font-weight: 500; white-space: nowrap;
}
.pur-overdue .ico { width: 13px; height: 13px; }

/* 進貨明細的驗收標示欄：異常時會塞一段說明，給它一點呼吸空間 */
#rc-lines .iso-ai-flag { line-height: 1.5; }

/* 行動版（<768px）：表格轉卡片後，輸入框不要被固定寬綁死 */
@media (max-width: 767px) {
  .pur-w-item, .pur-w-qty, .pur-w-price, .pur-w-wh { min-width: 0; max-width: 60%; width: 60%; }
  .pur-acts { flex-wrap: wrap; justify-content: flex-end; }
  #rc-lines .iso-ai-flag { width: 100%; }
}

@media print {
  .iso-honest, .iso-page__foot, .iso-batchbar, .iso-toolbar { display: none !important; }
}

/* 近期進貨紀錄：單號與日期不要被平均分欄擠到換行 */
#rc-history td[data-label="進貨單號"],
#rc-history td[data-label="採購單號"],
#rc-history td[data-label="進貨日"] { white-space: nowrap; }

/* UX §4.2 只說「平板隱藏次要欄位、行動轉卡片」——卡片沒有寬度壓力，
 * 所以平板隱掉的欄位（申請日、AI 標示、規格）在行動版要回來，
 * 否則手機上看不到「AI 生成草稿」這個本模組最關鍵的標示。 */
@media (max-width: 767px) {
  .iso-table td.pur-show-mobile { display: flex !important; }
}

/* 行動版：分區標題（「1 供應商區」）不要在編號與文字之間斷行 */
@media (max-width: 767px) {
  .iso-section__title { white-space: nowrap; }
  .iso-card__head { flex-wrap: wrap; }
}
