/*
 * A11Y-01 #23：全站觸控尺寸與對比度修正（第一輪：只做觸控與對比，不動字級）。
 *
 * 為什麼是獨立靜態檔而不是直接改 resources/css/app.css：
 * app.css 是 Vite entry（見 public/build/manifest.json），改動 app.css 的
 * 原始碼本身不會反映到實際服務的 public/build/assets/app-*.css，需要
 * npm run build 重新編譯——但本輪與更早的 ui-01/WP-06 規範一致，禁止執行
 * build、禁止觸碰 public/build/。因此改走 public/css/ 靜態資產（同一套已
 * 在 WP-06 用過的模式），由 layouts/app.blade.php 在 @vite(...) 之後另外
 * <link> 這個檔案，靠 CSS cascade 的來源順序覆寫 app.css 的規則，
 * app.css 本身完全不變（sha256 與本輪開始前相同）。
 *
 * 這裡只用到 app.css :root 已宣告的 CSS custom property（--touch-target、
 * --space-1），沒有新增或覆寫任何 :root token。
 */

/* -------------------------------------------------------------------- */
/* 觸控尺寸（a11y-01 §3.1）                                              */
/* -------------------------------------------------------------------- */

/*
 * 「查看完整紀錄」.text-link，320px 下原本 75×19，只有高度不足 44px。
 * 只鎖定 .selected-day-actions 容器內的這個實例，不動全站 .text-link——
 * base rule 還被 auth 頁面裡跟一般文字混排的 .text-link 共用（例如
 * 「還沒有帳號？建立帳號」），改 base 會讓額外的定位脈絡影響那些行內
 * 文字，超出本輪授權範圍。
 *
 * 診斷紀錄（2026-08-09）：原本改用 display:inline-flex + min-height 撐大
 * 連結自己的版面盒子，實測讓 .selected-day-actions 容器變高、頁面
 * document.documentElement.scrollHeight 從 1505 漲到 1523px（+18px）。
 * 進一步比對 .fab（position:fixed）改前改後的 getComputedStyle().right／
 * .bottom：兩者完全不變（皆為 18px／96px），只有 getBoundingClientRect()
 * 量到的座標差了 18.08px——電腦值沒變、只有 rect 變，判定為頁面變高
 * 引發的捲軸／座標系量測誤差，不是 CSS 規格上「鄰居被推動」的真實位移，
 * 但既然會讓自動化量測的 rect 產生誤差、且原本就不必要（見下），一律不採用。
 *
 * 改用不參與版面計算的絕對定位偽元素熱區：連結本身尺寸／位置完全不變
 * （.selected-day-actions 的版面盒子、.fab 的位置、頁面 scrollHeight 皆
 * 実測 0 差異），::after 疊加一個 >=44px 的可點擊區，這是 WCAG 2.5.8
 * 認可的「擴大點擊區但不移動視覺內容」標準做法。
 *
 * inset 只往上下擴（-13px，18.72px 原始高度 + 26px = 44.72px，
 * 各 viewport 下原始高度只會更高，門檻同樣達標），左右不擴（inset 0）——
 * 原始寬度 74.89-96px 已經 >=44px，往左右擴沒有必要，且 .fab 就在右邊
 * gap:10px 之外，往左右擴有覆蓋鄰居熱區的風險，兩者都不做才是零風險。
 */
.selected-day-actions .text-link {
    position: relative;
}

.selected-day-actions .text-link::after {
    content: "";
    position: absolute;
    inset: -13px 0;
}

/*
 * 訪客/demo 模式頁首「建立免費帳號」（dashboard/index.blade.php:63）：
 * a11y-01 §3 原記載 390px 下 96×24。本輪嘗試用跟 .text-link 相同的偽元素
 * 熱區技巧修正，但實測發現這個連結是跨行折斷的 inline 文字（跟前面的純
 * 文字「新使用者可」混排在同一句子裡），現場量到的 getBoundingClientRect()
 * 是 295×48（已經 >=44×44），跟 a11y-01 原記載的 96×24 對不上，且
 * display:inline-block + ::after 熱區在這個換行情境下量到 auto/auto（沒有
 * 正確生效）。這代表「建立免費帳號」需要重新診斷實際情況（可能是量測
 * 環境或改版後的文案長度造成落差），不是本輪能安全處理的範圍，**本輪不
 * 對這個元素做任何改動**，如實記錄為未完成，留待下一輪重新量測後再修。
 */

@media (max-width: 719px) {
    /* 訪客頁首「登入」／「註冊」：這個寬度下圖示旁的文字被 app.css 的
       `.guest-actions .button .icon + span { display: none; }` 隱藏成
       純圖示按鈕，改用圖形物件標準，min-height 與 min-width 兩維度都要
       達到 44px（app.css 原本只有 min-height）。 */
    .guest-actions .button.button-compact {
        min-width: var(--touch-target);
    }
}

@media (min-width: 720px) and (max-width: 1023px) {
    /* 「登出」.button-compact：720-1023px 是觸控環境（<1024 門檻 44px），
       但 app.css 原本只有 <719px 與 >=1024px 兩段明確規則，這個範圍沿用了
       桌機的 42px base 值，768px 下實測 88×42，未達 44px。1024px 以上刻意
       不動，維持 42px（滑鼠環境 24px 門檻已合規）。 */
    .button-compact {
        min-height: var(--touch-target);
    }
}

/* -------------------------------------------------------------------- */
/* 對比度（a11y-01 §3.2）                                                */
/* -------------------------------------------------------------------- */

/*
 * 2026-08-09 修訂二退回：.studio-heart（♥）原本改深色，理由是「純圖示
 * 適用 3:1」——但 WCAG 1.4.11 Non-text Contrast 的規範對象是「理解內容
 * 所必需的圖形物件」，dashboard/index.blade.php:77 的 ♥ 帶
 * aria-hidden="true"，是純裝飾、不承載任何內容，從一開始就不適用對比度
 * 規範，不是缺陷。本輪禁止為美觀改顏色，這一處沒有無障礙理由，退回
 * app.css 原本的 #d88b8e，不在這裡覆寫。判定邏輯修正見 a11y-01 §2.1
 * 第 5 個系統性偏差（排除 aria-hidden／role=presentation/none／CSS
 * 純裝飾內容）。
 */

/* .record-tag：--color-positive／--color-negative 對各自 soft 背景只有
   4.11-4.40:1（不足 4.5:1），且這兩個 token 還被別處使用，不能直接改
   token。比照 WP-06 對 .booking-status-badge 的做法（同一組 soft 背景，
   另外指定較深前景色），沿用完全相同的色值：
     #3a734a on --color-positive-soft = 5.02:1
     #a24846 on --color-negative-soft = 5.04:1
   （實測見 docs/booking-mvp/wp06-gate-report.md §1-2）。背景維持不變。 */
.record-tag {
    color: #3a734a;
}

.expense .record-tag {
    color: #a24846;
}
