/* =============================================================
   愛窩集團 CIS — 企業大腦 主題 token
   依據：《愛窩集團_工程交付.md》§1（色彩三層架構）／
         《集團CIS_未涵蓋事項決議紀錄.md》
   三層：:root 原始色 → :where(:root) 語意色 → [data-topic] 屋脊色

   ⚠️ Tailwind CDN（Play CDN）對 CSS 變數色不支援 opacity modifier
   （例如 bg-primary/10 這種寫法）。所以 index.html 內嵌 tailwind.config
   的 primary／slate 顏色一律寫實色字面值，不引用這裡的 var()。這裡的
   token 供本檔自訂的 class（.kb-doc、#app-loader…）與全站 focus 樣式用。
   ============================================================= */

:root {
  color-scheme: light; /* 全站已翻淺，避免瀏覽器對表單元件/捲軸做自動深色反轉 */

  /* 蜜黃　集團主色（本站以系統介面為主，蜜黃僅供未來品牌大色塊使用） */
  --aiwo-honey-100: #FAF1DB;
  --aiwo-honey-500: #E3B54C;
  --aiwo-honey-700: #75622A;

  /* 霧灰青　科技與系統 */
  --aiwo-teal-100: #E6EFEE;
  --aiwo-teal-500: #6E8F8C;
  --aiwo-teal-700: #4A6260;

  /* 鼠尾草　文化與人（本站不掛 data-topic="people"，僅補齊三層架構供未來沿用） */
  --aiwo-sage-100: #E9EDE6;
  --aiwo-sage-500: #869479;
  --aiwo-sage-700: #55604F;

  /* 中性四階 */
  --aiwo-paper: #F5EEE1; /* 紙感米：內頁底 */
  --aiwo-mist: #EDE9E0; /* 米灰：區塊底 */
  --aiwo-stone: #B8B2A4; /* 石灰：分隔、標記輪廓 */
  --aiwo-ink: #221A12; /* 深墨：文字 */

  /* 功能色 */
  --aiwo-success: #2F6B45;
  --aiwo-warning: #D2960F;
  --aiwo-danger: #9B3225;
}

/* 語意層：特異性 0,0,0，任何 [data-*] 覆寫必贏，不依賴原始碼順序（工程交付 §1.2） */
:where(:root) {
  --brand-primary: var(--aiwo-honey-500);
  --brand-primary-soft: var(--aiwo-honey-100);
  --brand-primary-text: var(--aiwo-honey-700);
  --on-brand: var(--aiwo-ink);

  --sys-accent: var(--aiwo-teal-500);
  --sys-accent-hover: var(--aiwo-teal-700);
  --sys-accent-soft: var(--aiwo-teal-100);

  --people-accent: var(--aiwo-sage-500);
  --people-accent-soft: var(--aiwo-sage-100);

  --bg: var(--aiwo-mist);
  --bg-alt: var(--aiwo-paper);
  --surface: #FBF9F4;
  --border: #E4DFD2;
  --radius: 16px;
  --text: var(--aiwo-ink);
  --text-secondary: #3E3A33;
  --text-muted: #6E695D;
  --link: var(--aiwo-teal-700);

  /* focus 環：規範 p.29「2px --sys-accent」對米灰底僅 2.90:1，未達 §3.2 的 3:1 UI 門檻
     （決議紀錄 §四之二，已覆算確認）。改用 700 階，5.40:1。 */
  --focus-ring: var(--aiwo-teal-700);
}

/* 屋脊層：一頁一色，掛在 <body> 的 data-topic（不掛 <html>，工程交付 §1.3） */
:where(:root) { --topic-accent: var(--brand-primary); --topic-soft: var(--aiwo-honey-100); --topic-strong: var(--aiwo-honey-700); }
[data-topic="system"] { --topic-accent: var(--sys-accent); --topic-soft: var(--aiwo-teal-100); --topic-strong: var(--aiwo-teal-700); }
[data-topic="people"] { --topic-accent: var(--people-accent); --topic-soft: var(--aiwo-sage-100); --topic-strong: var(--aiwo-sage-700); }

/* =============================================================
   全站 focus 樣式（工程交付 §3.1：outline 2px solid --sys-accent；offset 2px）
   ============================================================= */
:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

/* 深墨底區塊（例：登入頁管理員按鈕 bg-slate-700，slate 已於 tailwind.config
   重映到 --aiwo-ink 系）內的 focus 環：700 階在深墨底上太暗、環幾乎不可見，
   改回 500 階霧灰青（決議紀錄「深墨底區塊覆寫回 #6E8F8C」）。 */
.bg-slate-700:focus-visible,
.bg-slate-800:focus-visible,
.bg-slate-900:focus-visible {
  outline-color: var(--aiwo-teal-500);
}

/* =============================================================
   bg-primary + text-white 對比修正（站內約 74 處按鈕）
   primary 現為霧灰青 #6E8F8C（決議：系統作用色接霧灰青，不接蜜黃）。
   霧灰青配白字獨立覆算為 3.52:1（原估 3.03:1，已修正，兩者結論一致），
   站內多數為 14px 內文按鈕，未達 §3.2 小字 4.5:1 門檻。改配 --on-brand
   深墨字，4.9:1 恆過任何尺寸——同時就是工程交付 §3.1「按鈕（主要）：
   topic-accent 底＋aiwo-ink 字」的正確做法。
   ============================================================= */
.bg-primary.text-white { color: var(--on-brand); }

/* =============================================================
   text-primary 對比修正（站內約 76 處，多為小圖示／連結／強調文字）
   霧灰青 500 階當文字色：紙感米 3.05:1、surface 3.34:1，均未達小字 4.5:1。
   改配 700 階 #4A6260：紙感米 5.67:1、surface 6.22:1，恆過。
   用 `html` 元素選擇器墊高特異性（0,1,1）以穩贏 Tailwind 原生 .text-primary
   （0,1,0），不依賴 <link> 與 CDN <script> 的載入順序。
   深墨底區塊覆寫回 500 階（同 focus 環的道理：700 階在深墨底反而對比更差，
   實測 700 階/深墨僅 1.7～2.6:1，500 階/深墨 3.2～4.9:1）。站內目前查無
   text-primary 直接用在深墨底的既有案例，此為預防性補齊，非修既有 bug。
   ============================================================= */
html .text-primary { color: var(--aiwo-teal-700); }
.bg-slate-700 .text-primary, .bg-slate-800 .text-primary, .bg-slate-900 .text-primary,
.bg-slate-700.text-primary, .bg-slate-800.text-primary, .bg-slate-900.text-primary {
  color: var(--aiwo-teal-500);
}

/* =============================================================
   text-slate-400／text-slate-300 對比修正（P0-2，2026-08-11）
   text-slate-400 裸用 343 處、text-slate-300 裸用 19 處（皆已排除純 dark: 前綴死碼），
   remap 後分別是石灰 #B8B2A4（對三種底 1.74～2.11:1）與更淺的 #D3CBB8（對比更差），
   但程式碼把它們當「次要文字/說明文字」在用——石灰 token 的規範定位其實是「分隔、
   標記輪廓」，不是文字色（工程交付 §1.1）。零 codemod 修法：兩者的文字色一律解析
   為 --text-muted（#6E695D，重新覆算：paper 4.74:1／mist 4.51:1／surface 5.20:1／
   white 5.47:1，四種底全數 ≥4.5:1，符合 §3.2 小字門檻）。
   border-slate-400／bg-slate-400（全站裸用僅 3＋1 處）不受影響——選擇器只鎖
   .text-slate-400／.text-slate-300 這兩個 class，不觸及 border-／bg- 前綴的同色階
   utility。用 `html` 元素選擇器墊高特異性（0,1,1）穩贏 Tailwind 原生
   .text-slate-400／.text-slate-300（0,1,0），做法與上面 text-primary 那條規則一致，
   不依賴 <link> 與 CDN <script> 的載入順序。
   （dark: 前綴版本如 dark:text-slate-400 是死碼——.dark 從未掛到 <html>，那條規則
   本來就不 match 任何元素，不受此規則影響。另外跟 text-primary 不同，這裡不補「深墨
   底覆寫回淺階」：grep 確認全站沒有 text-slate-400/300 搭配 bg-slate-700/800/900
   （非 dark: 前綴）共同出現的既有案例——僅有的幾處深底元素都明確搭 text-white，不會
   出現「暗字疊暗底」，故無需比照 text-primary 加第二條規則。） */
html .text-slate-400,
html .text-slate-300 {
  color: var(--text-muted);
}

/* =============================================================
   死 class 復活：2026-08-08 起在 4 個檔案被使用卻從未定義過
  （原定義於從未被 index.html 載入的 style.css，現搬入這裡並改配淺色）
   ============================================================= */

/* .fade-up：17 處，卡片進場動畫 */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
.fade-up { animation: fadeUp .42s cubic-bezier(.22, 1, .36, 1) both; }
@media (prefers-reduced-motion: reduce) { .fade-up { animation: none; } }

/* .kpi-card：4 處，首頁 KPI 卡 hover 浮起光暈（改用系統色霧灰青；原色 rgba(17,82,212,…)
   是除役前的舊藍 #1152d4，蜜黃規範不禁止陰影色但系統介面沿用霧灰青較一致） */
.kpi-card:hover { box-shadow: 0 14px 34px -12px rgba(110, 143, 140, .35); }

/* .tap-44：20 處，手機斷點下的最小 44px 觸控尺寸（WCAG 觸控標準） */
@media (max-width: 1023px) {
  .tap-44 { min-width: 44px; min-height: 44px; }
}
