        /* WCAG 2.1 AAA - 全域無障礙基礎樣式 */
        *:focus-visible {
            outline: 3px solid #2563eb;
            outline-offset: 2px;
            border-radius: 2px;
        }
        @media (prefers-reduced-motion: reduce) {
            *, *::before, *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
                scroll-behavior: auto !important;
            }
        }
        body.font-size-small { font-size: 0.9rem; font-weight: 400; line-height: 1.62; }
        body.font-size-large { font-size: 1.125rem; font-weight: 500; line-height: 1.82; }
        body.font-size-small .text-xs { font-size: 0.6875rem !important; }
        body.font-size-small .text-sm { font-size: 0.8125rem !important; }
        body.font-size-small .text-base { font-size: 0.9rem !important; }
        body.font-size-small .text-lg { font-size: 1rem !important; }
        body.font-size-small .text-xl { font-size: 1.125rem !important; }
        body.font-size-small .text-2xl { font-size: 1.35rem !important; }
        body.font-size-small .text-3xl { font-size: 1.65rem !important; }
        body.font-size-large .text-xs { font-size: 0.8125rem !important; }
        body.font-size-large .text-sm { font-size: 1rem !important; }
        body.font-size-large .text-base { font-size: 1.125rem !important; }
        body.font-size-large .text-lg { font-size: 1.25rem !important; }
        body.font-size-large .text-xl { font-size: 1.4375rem !important; }
        body.font-size-large .text-2xl { font-size: 1.75rem !important; }
        body.font-size-large .text-3xl { font-size: 2.15rem !important; }
        body.font-size-small input,
        body.font-size-small select,
        body.font-size-small textarea,
        body.font-size-small button,
        body.font-size-large input,
        body.font-size-large select,
        body.font-size-large textarea,
        body.font-size-large button { font-weight: inherit; }
        body { line-height: 1.7; letter-spacing: 0.015em; }
        .font-size-control[aria-pressed="true"] {
            background-color: #1e3a8a;
            border-color: #1e3a8a;
            color: #ffffff;
        }

        /* WCAG 2.1 AA/AAA - 全站對比度升級覆寫（Tailwind utility token） */
        /* 灰階文字不足提升至 gray-700 (#374151)，在白底上達 4.5:1 以上 */
        .text-gray-400 { color: #4b5563 !important; }
        .text-gray-500 { color: #4b5563 !important; }
        /* hover 变深不變淺 */
        .hover\:text-gray-500:hover { color: #4b5563 !important; }
        /* placeholder 提升至 gray-600 */
        .placeholder-gray-300::placeholder,
        .placeholder-gray-400::placeholder,
        .placeholder-gray-500::placeholder { color: #4b5563 !important; opacity: 1; }
        /* 一般邊框加深（非文字對比 1.4.11 需 3:1） */
        .border-gray-100 { border-color: #d1d5db !important; }
        .border-gray-200 { border-color: #d1d5db !important; }
        /* 彩色文字 -400 / -500 升至 -700（svg icon 以 currentColor 填色也同步加深） */
        .text-red-400, .text-red-500, .text-red-600, .text-red-700, .text-red-800 { color: #7f1d1d !important; }
        .text-amber-400, .text-amber-500, .text-amber-600, .text-amber-700, .text-amber-800 { color: #713f12 !important; }
        .text-yellow-400, .text-yellow-500, .text-yellow-600, .text-yellow-700, .text-yellow-800 { color: #713f12 !important; }
        .text-green-400, .text-green-500, .text-green-600, .text-green-700, .text-green-800 { color: #14532d !important; }
        .text-emerald-400, .text-emerald-500 { color: #047857 !important; }
        .text-teal-400, .text-teal-500 { color: #0f766e !important; }
        .text-blue-400 { color: #1d4ed8 !important; }
        .text-blue-500 { color: #1d4ed8 !important; }
        .text-indigo-400, .text-indigo-500 { color: #4338ca !important; }
        .text-sky-400, .text-sky-500 { color: #0369a1 !important; }
        .text-cyan-400, .text-cyan-500 { color: #0e7490 !important; }
        .text-pink-400, .text-pink-500 { color: #be185d !important; }
        .text-purple-400, .text-purple-500 { color: #6d28d9 !important; }
        .text-violet-400, .text-violet-500 { color: #6d28d9 !important; }
        .text-orange-400, .text-orange-500, .text-orange-600, .text-orange-700, .text-orange-800 { color: #9a3412 !important; }
        .bg-orange-600 { background-color: #9a3412 !important; }
        .hover\:bg-orange-700:hover { background-color: #7c2d12 !important; }

        /* WCAG 2.1 AAA 1.4.6 - disabled / readonly / hover 補強 */
        input::placeholder, textarea::placeholder, select::placeholder { color: #4b5563 !important; opacity: 1; }
        input:disabled, textarea:disabled, select:disabled,
        button:disabled, [aria-disabled="true"] {
            color: #1f2937 !important;
            background-color: #e5e7eb !important;
            opacity: 1 !important;
            cursor: not-allowed;
        }
        /* hover 顯著差異（避免 hover 後對比反而下降） */
        a:hover, button:not(:disabled):hover { text-decoration-thickness: 2px; }
        /* readonly 視覺區隔 */
        input:read-only:not([type="checkbox"]):not([type="radio"]),
        textarea:read-only { background-color: #f3f4f6 !important; }
