/*
 * 全站主題：覆寫 Bootstrap 5.3 的變數與元件色，不動各頁的結構與欄位。
 * 配色取自 ui-ux-pro-max 的「Minimalism & Swiss Style」＋機構深藍色票：
 *   主色 #1E3A5F（深藍）、背景 #F8FAFC、文字 #0F172A、次要文字 #475569、框線 #CBD5E1
 * 要退回原本的 Bootstrap 外觀，從 layouts/header 與 auth/login 拿掉這支檔案即可。
 */

:root {
    --pn-primary: #1e3a5f;
    --pn-primary-hover: #16304f;
    --pn-primary-active: #112640;
    --pn-primary-rgb: 30, 58, 95;
    --pn-primary-subtle: #e6ecf4;
    --pn-primary-border: #b7c6da;
    --pn-bg: #f8fafc;
    --pn-fg: #0f172a;
    --pn-muted: #475569;
    --pn-border: #cbd5e1;
    --pn-border-light: #e2e8f0;
    --pn-head: #eef2f7;

    /* 中文優先的字型堆疊：Windows 用微軟正黑體，Mac 用蘋方，其餘落到 Noto Sans TC */
    --bs-body-font-family: "Segoe UI", "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", system-ui, sans-serif;
    --bs-body-line-height: 1.6;
    --bs-body-color: var(--pn-fg);
    --bs-body-color-rgb: 15, 23, 42;
    --bs-body-bg: #fff;
    --bs-secondary-color: var(--pn-muted);
    --bs-tertiary-bg: var(--pn-bg);
    --bs-tertiary-bg-rgb: 248, 250, 252;
    --bs-border-color: var(--pn-border);
    --bs-emphasis-color: var(--pn-fg);

    --bs-primary: var(--pn-primary);
    --bs-primary-rgb: var(--pn-primary-rgb);
    --bs-primary-text-emphasis: var(--pn-primary);
    --bs-primary-bg-subtle: var(--pn-primary-subtle);
    --bs-primary-border-subtle: var(--pn-primary-border);

    --bs-link-color: #1d4ed8;
    --bs-link-color-rgb: 29, 78, 216;
    --bs-link-hover-color: #1e3a8a;
    --bs-link-hover-color-rgb: 30, 58, 138;

    --bs-border-radius: .375rem;
    --bs-border-radius-sm: .3rem;
    --bs-border-radius-lg: .5rem;

    /* 焦點框：比 Bootstrap 預設的淡藍光暈更清楚，鍵盤操作時看得到位置 */
    --bs-focus-ring-color: rgba(var(--pn-primary-rgb), .35);
}

@media screen {
    body { -webkit-font-smoothing: antialiased; }
}

/* ── 導覽列 ── */
.navbar-dark.bg-dark,
nav.bg-dark {
    background-color: var(--pn-primary) !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .25);
}
nav.bg-dark .nav-link { transition: opacity .15s ease; }
nav.bg-dark .nav-link:hover { opacity: .8; }
.dropdown-menu {
    --bs-dropdown-border-color: var(--pn-border-light);
    --bs-dropdown-link-active-bg: var(--pn-primary);
    --bs-dropdown-link-hover-bg: var(--pn-primary-subtle);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}

/* ── 頁面標題 ── */
.page-head h1 {
    color: var(--pn-fg) !important;
    font-weight: 600;
    letter-spacing: .02em;
}

/* ── 卡片 ── */
.card {
    --bs-card-border-color: var(--pn-border-light);
    --bs-card-cap-bg: var(--pn-head);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}
.card-header { font-weight: 600; color: var(--pn-fg); }

/* ── 按鈕 ── */
.btn { transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.btn-primary {
    --bs-btn-bg: var(--pn-primary);
    --bs-btn-border-color: var(--pn-primary);
    --bs-btn-hover-bg: var(--pn-primary-hover);
    --bs-btn-hover-border-color: var(--pn-primary-hover);
    --bs-btn-active-bg: var(--pn-primary-active);
    --bs-btn-active-border-color: var(--pn-primary-active);
    --bs-btn-disabled-bg: var(--pn-primary);
    --bs-btn-disabled-border-color: var(--pn-primary);
    --bs-btn-focus-shadow-rgb: var(--pn-primary-rgb);
}
.btn-outline-primary {
    --bs-btn-color: var(--pn-primary);
    --bs-btn-border-color: var(--pn-primary);
    --bs-btn-hover-bg: var(--pn-primary);
    --bs-btn-hover-border-color: var(--pn-primary);
    --bs-btn-active-bg: var(--pn-primary-active);
    --bs-btn-active-border-color: var(--pn-primary-active);
    --bs-btn-focus-shadow-rgb: var(--pn-primary-rgb);
}
/* 預設的 outline-secondary 灰字對白底只有約 4.0:1，加深到 4.5:1 以上 */
.btn-outline-secondary {
    --bs-btn-color: var(--pn-muted);
    --bs-btn-border-color: var(--pn-border);
    --bs-btn-hover-color: var(--pn-fg);
    --bs-btn-hover-bg: var(--pn-head);
    --bs-btn-hover-border-color: #94a3b8;
    --bs-btn-active-color: var(--pn-fg);
    --bs-btn-active-bg: var(--pn-border-light);
    --bs-btn-active-border-color: #94a3b8;
}

/* 鍵盤操作的焦點框一律可見 */
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.nav-link:focus-visible,
.dropdown-item:focus-visible,
.page-link:focus-visible,
a:focus-visible {
    outline: 2px solid var(--pn-primary);
    outline-offset: 2px;
    box-shadow: none;
}

/* ── 表單 ── */
.form-label { font-weight: 500; color: var(--pn-fg); }
.form-text { color: var(--pn-muted); }
.form-control:focus,
.form-select:focus {
    border-color: var(--pn-primary);
    box-shadow: 0 0 0 .2rem rgba(var(--pn-primary-rgb), .15);
}
.form-check-input:checked {
    background-color: var(--pn-primary);
    border-color: var(--pn-primary);
}
.form-check-input:focus { border-color: var(--pn-primary); box-shadow: 0 0 0 .2rem rgba(var(--pn-primary-rgb), .15); }

/* ── 表格 ── */
.table {
    --bs-table-border-color: var(--pn-border-light);
    --bs-table-hover-bg: rgba(var(--pn-primary-rgb), .04);
}
.table > thead th { font-weight: 600; white-space: nowrap; }
.table-light {
    --bs-table-bg: var(--pn-head);
    --bs-table-color: var(--pn-fg);
    --bs-table-border-color: var(--pn-border);
}
.table-primary {
    --bs-table-bg: var(--pn-primary-subtle);
    --bs-table-color: var(--pn-fg);
    --bs-table-border-color: var(--pn-primary-border);
    --bs-table-hover-bg: #d9e2ee;
}
.table-bordered > :not(caption) > * > * { border-color: var(--pn-border-light); }

/* ── 分頁 ── */
.pagination {
    --bs-pagination-color: var(--pn-primary);
    --bs-pagination-hover-color: var(--pn-primary-active);
    --bs-pagination-active-bg: var(--pn-primary);
    --bs-pagination-active-border-color: var(--pn-primary);
    --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--pn-primary-rgb), .2);
}

/* ── 提示框：左側色條讓類型一眼可辨，不只靠底色 ── */
.alert { border-left-width: 4px; }

/* ── 對話框 ── */
.modal-content { border: 0; box-shadow: 0 20px 48px rgba(15, 23, 42, .2); }
.modal-header { background-color: var(--pn-head); }

/* ── 頁尾 ── */
footer { border-top: 1px solid var(--pn-border-light); margin-top: 2rem; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* 列印時不吃主題的陰影與色條，避免跟 plan-print.css 打架 */
@media print {
    .card, .modal-content { box-shadow: none !important; }
    .alert { border-left-width: 1px; }
}
