/* TIRI 收件後台品牌色（依 backend-design uikit 規範，全站唯一色來源） */
:root {
  --b-primary: #7e3268;
  --b-chrome:  #7e3268;
  --b-on-primary: #ffffff;
}

/* ── 專案皮膚：全後台扁平化（V2 定調＝無陰影）──
   蓋掉 b_tokens 的 elevation 陰影 token；focus 光圈與表頭分隔線是另寫的 box-shadow，不受影響 */
:root, :root[data-color-mode="dark"] {
  --shadow-2xs: none; --shadow-xs: none; --shadow-sm: none;
  --shadow-md: none; --shadow-lg: none; --shadow-xl: none; --shadow-2xl: none;
}

/* ── 例外：浮層（面板/下拉）帶一點點陰影（使用者裁決 2026-07-28）──
   卡片/按鈕維持全平；只有「浮在內容上方」的層級給極輕陰影撐出前後關係。 */
:root { --float-shadow: 0 6px 20px rgba(23, 20, 31, .08), 0 1px 4px rgba(23, 20, 31, .05); }
html:root[data-color-mode="dark"] { --float-shadow: 0 6px 20px rgba(0, 0, 0, .40), 0 1px 4px rgba(0, 0, 0, .30); }
.b-pop-panel,          /* 篩選等頁首下拉面板 */
.b-menu,               /* 動作菜單 */
.b-dd-menu,            /* 自訂下拉選單 */
.b-ctxmenu,            /* 指標旁 context menu */
.header-user-menu,     /* 右上帳號/登出選單 */
.header-fs-panel,      /* Aa 字級面板 */
.cms-flyout {          /* 側欄收合浮窗 */
  box-shadow: var(--float-shadow) !important;
}

/* ── 文字類按鈕 hover＝文字亮起主題色、不加底色（使用者裁決 2026-07-28，全後台統一）──
   蓋掉 kit 的 hover 淡紫/淡灰底。選擇器用 .b-btn 前綴墊特異度（brand.css 載入在 b_admin.css 之前）。 */
.b-btn.b-btn-text:hover { background: transparent; color: var(--fg-brand-strong); }
/* danger 文字鈕（BDialog 確認鈕）例外：hover＝半透明紅底＋紅字（使用者裁決 2026-07-29），
   特異度墊三層蓋過上一條的亮紫 */
.b-btn.b-btn-text.b-btn-text-danger:hover {
  background: color-mix(in srgb, var(--danger) 12%, transparent);
  color: var(--fg-danger-strong, var(--fg-danger));
}
.b-btn.b-btn-text-danger:hover { background: transparent; }
.b-btn.b-btn-ghost:hover { background: transparent; color: var(--fg-brand); }
.b-btn.b-btn-ghost:hover :where(i, .lucide, svg) { color: var(--fg-brand); }
.b-btn.b-btn-quiet:hover { background: transparent; color: var(--fg-brand); }
.b-btn.b-btn-quiet:hover :where(i, .lucide, svg) { color: var(--fg-brand); }

/* ── 深色模式：modal 補一圈淺外框（深底上白卡變深卡、與遮罩融在一起 → 需要輪廓）── */
html:root[data-color-mode="dark"] .b-modal { border: 1px solid rgba(255, 255, 255, .12); }

/* ── modal 遮罩去 blur ──
   kit 遮罩帶 backdrop-filter: blur(1px)：遮罩顯示瞬間整頁像素同時被模糊「抖」一下，
   看起來就是「開 alert 畫面閃爍」（backdrop-filter 顯隱不可漸變——V2 nav 同族坑）。
   只保留 rgba 壓暗。!important＝brand.css 載在 b_admin.css 之前，同特異度會被蓋回。 */
.b-modal-overlay { backdrop-filter: none !important; }

/* ── BDialog（dialogs.js 動態對話框）首開淡入 ──
   kit 的兩段式 transition（is-visible → reflow → is-open）在真瀏覽器首開會直接跳終態
   （節點剛 append、display 與 opacity 同幀——與 #b-cell-modal、收件匣 modal 同一坑），
   改用綁 display 切換自動播放的 @keyframes。不填 fill：動畫跑完回歸 is-open 的 opacity:1，
   關閉時 is-open 移除仍走原本 transition 淡出，兩頭都有動畫。 */
/* 進場規格＝全站 modal 統一對齊收件匣詳情視窗（使用者裁決 2026-07-30）：
   overlay .15s 淡入＋本體 .15s 淡入 + scale(.98→1)。
   ⚠️ 歷史：scale(.96) 版曾因縮放幅度大、文字重柵格化「糊→利」跳一下被退；
   .98 幅度小（收件匣 modal 同參數已長期使用無回報），若再出現文字閃爍先查這裡。 */
.b-modal-overlay[data-modal-vue].is-visible { animation: bdlg-overlay-in .15s ease-out; }
.b-modal-overlay[data-modal-vue].is-visible .b-modal { animation: bdlg-modal-in .15s ease-out; }
@keyframes bdlg-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bdlg-modal-in { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: scale(1); } }

/* ── iOS 平滑圓角（使用者裁決 2026-07-28）──
   corner-shape: squircle＝連續曲率圓角（同 iOS app icon）。漸進增強：
   新版 Chromium 生效，Safari 尚未支援則維持標準圓角。
   ⚠️ 圓形與膠囊（radius-full）元素一律排除：squircle 疊上全圓角會被壓成方圓形，
   支援的瀏覽器（Chrome）上看起來就不是膠囊/正圓。新增 radius-full 元素時記得補進這串。 */
@supports (corner-shape: squircle) {
  *, *::before, *::after { corner-shape: squircle; }
  .header-user-avatar, .gm-dot, .b-badge .dot,
  input[type="radio"], input[type="checkbox"],
  .header-user-btn, .header-icon-btn, .logo-env,
  .b-badge:not(.square), .b-alert-pill, .b-ish-circle,
  .b-avatar:not(.b-avatar-square), .b-occ-track, .b-occ-fill,
  .b-checkin-done-icon, .b-theme-preview-tag, .b-manual-step-n,
  .rounded-full { corner-shape: round; }
}

/* ── 深色模式收斂 ──
   kit 預設的深色 brand 家族把彩度乘 1.5（配他們低彩度深綠剛好），
   茄紫本身彩度高、乘完會變螢光刺眼 → 這裡改用降彩度/收亮度的相對色。
   選擇器加 html 墊高特異度，蓋過 b_admin.css 的 :root[data-color-mode="dark"]（載入順序在後）。 */
/* 錨點＝使用者定案的 #5e3a52（--brand），全家族帶灰調：彩度一律壓低，避免深底螢光感。
   ⚠️ 寫死 hex 而非 oklch 相對色：Safari 對 oklch(from … calc(c*n) h) 支援不全，
   無效值會整段跌回原始飽和紫（實測踩過）。以下值由公式預先算出：
   oklch(from #7e3268 L calc(c*倍率) h)，L/倍率標在各行註解，改品牌色時重算一次。 */
html:root[data-color-mode="dark"] {
  --brand: #5e3a52;                 /* L .40  c*.50  定案暗梅 */
  --brand-strong: #6d4760;          /* L .45  c*.50  hover 亮一階 */
  --brand-medium: #472f3f;          /* L .34  c*.35 */
  --brand-soft: #35212f;            /* L .28  c*.30 */
  --brand-softer: #291a24;          /* L .24  c*.24  淡底：近中性帶紫味 */
  --fg-brand: #bfa5b5;              /* L .75  c*.30  紫字：灰紫、不粉 */
  --fg-brand-strong: #d1beca;       /* L .82  c*.22 */
  --border-brand: #694f60;          /* L .46  c*.35 */
  --border-brand-subtle: #3e2c38;   /* L .32  c*.26 */
}

/* ── 側欄 hover（使用者裁決 2026-07-30）：比照全站文字類鈕＝不加底、文字/icon 亮 brand ──
   kit 預設 hover 是文字變深灰（b_admin.css 344-347，載入順序在本檔之後）→ 用 #cms-sidebar id 墊特異度蓋過。
   用 --fg-brand（深色模式有專屬可讀灰紫），與 b-btn-ghost/quiet hover 同 token。 */
#cms-sidebar .menu-item:not(.active):hover,
#cms-sidebar .submenu-toggle:not(.active):hover { background: transparent; color: var(--fg-brand); }
#cms-sidebar .menu-item:not(.active):hover :where(i, .lucide, svg),
#cms-sidebar .submenu-toggle:not(.active):hover :where(i, .lucide, svg) { color: var(--fg-brand); }
/* 收合側欄的子項浮窗同規則 */
.cms-flyout .cms-flyout-item:not(.active):hover { background: transparent; color: var(--fg-brand); }

/* ── 後台字型定調 Noto Sans TC（使用者裁決 2026-07-30）──
   kit 的 --font-admin 指向 "PingFang TC Admin" webfont，但字型檔從未入庫：
   每頁 404 三發後 Mac 退系統蘋方（看不出異狀）、Windows 退微軟正黑（跑版感）。
   改指 Noto（base.html/login.html 掛 Google Fonts），不再引用 PingFang webfont → 404 一併消失。
   html:root 墊特異度：brand.css 載在 b_admin.css 之前，同特異度會被蓋回。 */
html:root { --font-admin: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; }
