@charset "UTF-8";
/*
 * 全站視覺基準層（#3456）
 *
 * 目的：在 Bootstrap 5.3.8 上維持 B2B 既定的版面規格 —— 格線、表單、表格、彈窗、按鈕、色票。
 *       Bootstrap 本體的預設值以本檔為準，頁面樣式（layout.css）再疊在上面。
 *
 * 維護原則：
 *   - 只放「維持既定規格」的規則，新樣式一律寫 layout.scss
 *   - 每條註明維持的是什麼規格與數值
 *   - 載入順序：bootstrap.css 之後、layout.css 之前（頁面樣式仍可覆寫本檔）
 *
 * 刻意採用 Bootstrap 5 原生外觀的項目：
 *   - <select>：一律 .form-select（SVG 箭頭、右內距 2.25rem）
 */

/* 格線間距：欄位左右留白各 15px（--bs-gutter-x: 30px）。 */
.row {
  --bs-gutter-x: 30px;
}

/* 無間距列（g-0／gx-0）不吃上面的格線間距；用 `.row.g-0` (0,2,0) 確保它贏過 `.row` (0,1,0)。 */
.row.g-0,
.row.gx-0 {
  --bs-gutter-x: 0;
}

/* 表單標籤（label）下方留 .5rem，不綁 class、全站一致。 */
label {
  margin-bottom: 0.5rem;
}

/* 麵包屑上下內距 .75rem；左右內距由頁面的 px-0 決定，底色由 layout.css 設透明。 */
.breadcrumb {
  padding: 0.75rem 1rem;
}

/* 表格儲存格內距 .75rem。（同選擇器在「表格框線」段另管 border，屬性不重疊） */
.table > :not(caption) > * > * {
  padding: 0.75rem;
}

/* 小表格（.table-sm）儲存格內距 .3rem。 */
.table-sm > :not(caption) > * > * {
  padding: 0.3rem;
}

/* 勾選框標籤不吃 label 的下方留白。 */
.form-check-label {
  margin-bottom: 0;
}

/* ── 表單結構類名 ──────────────────────────────────────────
   .form-group／.btn-block／.form-row／.input-group-prepend·append 由本檔定義，頁面標籤沿用。 */

/* 表單欄位（.form-group）下方留 1rem。
   ⚠ 此類名同時是 bootstrapValidator 的 group 選擇器（`group: '.form-group'`）與 26 處 `.closest('.form-group')` 的定位點，
     驗證失敗時靠它掛 .has-error；類名不可改。 */
.form-group {
  margin-bottom: 1rem;
}

/* 滿版按鈕（.btn-block）；相鄰兩顆之間留 .5rem。sys/notify-mail 自帶 `.notify-mail-page .btn-block`，不衝突。 */
.btn-block {
  display: block;
  width: 100%;
}

.btn-block + .btn-block {
  margin-top: 0.5rem;
}

/* 窄版格線（.form-row）：橫向排列、左右 −5px，子欄位左右內距 5px。 */
.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -5px;
  margin-left: -5px;
}

/* 輸入框前後附加層（.input-group-prepend／-append）：display:flex 讓內含按鈕／文字方塊與輸入框等高。
   左右 −1px 由 `.input-group > :not(:first-child)` 提供，這裡不重複給。 */
.input-group-prepend,
.input-group-append {
  display: flex;
}

.input-group-prepend .btn,
.input-group-append .btn {
  position: relative;
  z-index: 2;
}

.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
  z-index: 3;
}

/* 附加層內側圓角切平，讓按鈕／文字方塊與輸入框邊框接合無缺口。 */
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* 不在 .row 裡的欄位（d-flex、form-row 等容器內）左右內距 15px；.row 內的欄位由格線間距決定，無間距列不受影響。 */
:not(.row) > .col-1,
:not(.row) > .col-2,
:not(.row) > .col-3,
:not(.row) > .col-4,
:not(.row) > .col-5,
:not(.row) > .col-6,
:not(.row) > .col-7,
:not(.row) > .col-8,
:not(.row) > .col-9,
:not(.row) > .col-10,
:not(.row) > .col-11,
:not(.row) > .col-12,
:not(.row) > .col,
:not(.row) > .col-auto,
:not(.row) > .col-sm-1,
:not(.row) > .col-sm-2,
:not(.row) > .col-sm-3,
:not(.row) > .col-sm-4,
:not(.row) > .col-sm-5,
:not(.row) > .col-sm-6,
:not(.row) > .col-sm-7,
:not(.row) > .col-sm-8,
:not(.row) > .col-sm-9,
:not(.row) > .col-sm-10,
:not(.row) > .col-sm-11,
:not(.row) > .col-sm-12,
:not(.row) > .col-sm,
:not(.row) > .col-sm-auto,
:not(.row) > .col-md-1,
:not(.row) > .col-md-2,
:not(.row) > .col-md-3,
:not(.row) > .col-md-4,
:not(.row) > .col-md-5,
:not(.row) > .col-md-6,
:not(.row) > .col-md-7,
:not(.row) > .col-md-8,
:not(.row) > .col-md-9,
:not(.row) > .col-md-10,
:not(.row) > .col-md-11,
:not(.row) > .col-md-12,
:not(.row) > .col-md,
:not(.row) > .col-md-auto,
:not(.row) > .col-lg-1,
:not(.row) > .col-lg-2,
:not(.row) > .col-lg-3,
:not(.row) > .col-lg-4,
:not(.row) > .col-lg-5,
:not(.row) > .col-lg-6,
:not(.row) > .col-lg-7,
:not(.row) > .col-lg-8,
:not(.row) > .col-lg-9,
:not(.row) > .col-lg-10,
:not(.row) > .col-lg-11,
:not(.row) > .col-lg-12,
:not(.row) > .col-lg,
:not(.row) > .col-lg-auto,
:not(.row) > .col-xl-1,
:not(.row) > .col-xl-2,
:not(.row) > .col-xl-3,
:not(.row) > .col-xl-4,
:not(.row) > .col-xl-5,
:not(.row) > .col-xl-6,
:not(.row) > .col-xl-7,
:not(.row) > .col-xl-8,
:not(.row) > .col-xl-9,
:not(.row) > .col-xl-10,
:not(.row) > .col-xl-11,
:not(.row) > .col-xl-12,
:not(.row) > .col-xl,
:not(.row) > .col-xl-auto {
  padding-right: 15px;
  padding-left: 15px;
}

/* 窄版格線（.form-row）的子欄位左右內距 5px。
   與上一條同為 (0,2,0)，必須排在它之後才會生效（載入順序決定勝負）。 */
.form-row > .col,
.form-row > [class*="col-"] {
  padding-right: 5px;
  padding-left: 5px;
}

/* 卡片內距：body 1.25rem、header／footer .75rem 1.25rem。 */
.card {
  --bs-card-spacer-y: 1.25rem;
  --bs-card-spacer-x: 1.25rem;
  --bs-card-cap-padding-y: 0.75rem;
  --bs-card-cap-padding-x: 1.25rem;
}

/* 欄位寬度上限：每個 col-* 的 max-width 與欄寬相同，同一元素再掛會設 width 的 class（如 `col-md-8 input-group`）時寬度仍夾在欄寬內。 */

.col {
  max-width: 100%;
}
.col-auto {
  max-width: 100%;
}
.col-1 {
  max-width: 8.333333%;
}
.col-2 {
  max-width: 16.666667%;
}
.col-3 {
  max-width: 25%;
}
.col-4 {
  max-width: 33.333333%;
}
.col-5 {
  max-width: 41.666667%;
}
.col-6 {
  max-width: 50%;
}
.col-7 {
  max-width: 58.333333%;
}
.col-8 {
  max-width: 66.666667%;
}
.col-9 {
  max-width: 75%;
}
.col-10 {
  max-width: 83.333333%;
}
.col-11 {
  max-width: 91.666667%;
}
.col-12 {
  max-width: 100%;
}

@media (min-width: 576px) {
  .col-sm {
    max-width: 100%;
  }
  .col-sm-auto {
    max-width: 100%;
  }
  .col-sm-1 {
    max-width: 8.333333%;
  }
  .col-sm-2 {
    max-width: 16.666667%;
  }
  .col-sm-3 {
    max-width: 25%;
  }
  .col-sm-4 {
    max-width: 33.333333%;
  }
  .col-sm-5 {
    max-width: 41.666667%;
  }
  .col-sm-6 {
    max-width: 50%;
  }
  .col-sm-7 {
    max-width: 58.333333%;
  }
  .col-sm-8 {
    max-width: 66.666667%;
  }
  .col-sm-9 {
    max-width: 75%;
  }
  .col-sm-10 {
    max-width: 83.333333%;
  }
  .col-sm-11 {
    max-width: 91.666667%;
  }
  .col-sm-12 {
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .col-md {
    max-width: 100%;
  }
  .col-md-auto {
    max-width: 100%;
  }
  .col-md-1 {
    max-width: 8.333333%;
  }
  .col-md-2 {
    max-width: 16.666667%;
  }
  .col-md-3 {
    max-width: 25%;
  }
  .col-md-4 {
    max-width: 33.333333%;
  }
  .col-md-5 {
    max-width: 41.666667%;
  }
  .col-md-6 {
    max-width: 50%;
  }
  .col-md-7 {
    max-width: 58.333333%;
  }
  .col-md-8 {
    max-width: 66.666667%;
  }
  .col-md-9 {
    max-width: 75%;
  }
  .col-md-10 {
    max-width: 83.333333%;
  }
  .col-md-11 {
    max-width: 91.666667%;
  }
  .col-md-12 {
    max-width: 100%;
  }
}

@media (min-width: 992px) {
  .col-lg {
    max-width: 100%;
  }
  .col-lg-auto {
    max-width: 100%;
  }
  .col-lg-1 {
    max-width: 8.333333%;
  }
  .col-lg-2 {
    max-width: 16.666667%;
  }
  .col-lg-3 {
    max-width: 25%;
  }
  .col-lg-4 {
    max-width: 33.333333%;
  }
  .col-lg-5 {
    max-width: 41.666667%;
  }
  .col-lg-6 {
    max-width: 50%;
  }
  .col-lg-7 {
    max-width: 58.333333%;
  }
  .col-lg-8 {
    max-width: 66.666667%;
  }
  .col-lg-9 {
    max-width: 75%;
  }
  .col-lg-10 {
    max-width: 83.333333%;
  }
  .col-lg-11 {
    max-width: 91.666667%;
  }
  .col-lg-12 {
    max-width: 100%;
  }
}

@media (min-width: 1200px) {
  .col-xl {
    max-width: 100%;
  }
  .col-xl-auto {
    max-width: 100%;
  }
  .col-xl-1 {
    max-width: 8.333333%;
  }
  .col-xl-2 {
    max-width: 16.666667%;
  }
  .col-xl-3 {
    max-width: 25%;
  }
  .col-xl-4 {
    max-width: 33.333333%;
  }
  .col-xl-5 {
    max-width: 41.666667%;
  }
  .col-xl-6 {
    max-width: 50%;
  }
  .col-xl-7 {
    max-width: 58.333333%;
  }
  .col-xl-8 {
    max-width: 66.666667%;
  }
  .col-xl-9 {
    max-width: 75%;
  }
  .col-xl-10 {
    max-width: 83.333333%;
  }
  .col-xl-11 {
    max-width: 91.666667%;
  }
  .col-xl-12 {
    max-width: 100%;
  }
}

/* 小字（small／.small）80%、字重 400。 */
small,
.small {
  font-size: 80%;
  font-weight: 400;
}

/* .row 直下沒有 col class 的元素（按鈕、純文字…）依內容寬排列、不佔滿整列。
   有自身寬度的元件不在此列：input-group／form-control／form-select／table／progress／custom-file／table-responsive。
   📏 白名單判準＝該元件本身就有 width:100%；要加新項目照這條判斷。 */
.row > :not([class*="col-"]):not([class~="col"]):not(.input-group):not(.form-control):not(.form-select):not(.table):not(.progress):not(.custom-file):not(.table-responsive) {
  width: auto;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

/* ── 表單控制項與關閉鈕 ──────────────────────────────────
   .close／button.close、.custom-control 家族（checkbox／radio／switch）、.custom-file 家族由本檔定義，
   頁面標籤與 JS 沿用（3 支 JSP 的 inline style 以 `.close` 當選擇器；檔名顯示靠 JS 更新 `.custom-file-label`）。
   ── */

.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
  color: #28a745;
}

.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
  border-color: #28a745;
}

.was-validated .custom-control-input:valid ~ .valid-feedback, .was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, .custom-control-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
  border-color: #34ce57;
  background-color: #34ce57;
}

.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
  border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .valid-feedback, .was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, .custom-file-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
  color: #dc3545;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
  border-color: #dc3545;
}

.was-validated .custom-control-input:invalid ~ .invalid-feedback, .was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, .custom-control-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
  border-color: #e4606d;
  background-color: #e4606d;
}

.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
  border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .invalid-feedback, .was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, .custom-file-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.input-group > .custom-file .custom-file-input:focus {
  z-index: 4;
}

/* input-group 內的檔案選擇器與其他控制項同樣分配剩餘寬度（flex 1 1 auto、基準寬 1%），
   Browse 鈕與提示文字才有完整的可見寬度。 */
.input-group > .custom-file {
  position: relative;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  width: 1%;
  margin-bottom: 0;
}

.input-group > .custom-file {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
}

.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .custom-file:not(:first-child) .custom-file-label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.custom-control {
  position: relative;
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5rem;
}

.custom-control-inline {
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin-right: 1rem;
}

.custom-control-input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}

.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #007bff;
  background-color: #007bff;
}

.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #80bdff;
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #b3d7ff;
  border-color: #b3d7ff;
}

.custom-control-input:disabled ~ .custom-control-label {
  color: #6c757d;
}

.custom-control-input:disabled ~ .custom-control-label::before {
  background-color: #e9ecef;
}

.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}

.custom-control-label::before {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  content: "";
  background-color: #fff;
  border: #adb5bd solid 1px;
}

.custom-control-label::after {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  content: "";
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 50% 50%;
}

.custom-checkbox .custom-control-label::before {
  border-radius: 0.25rem;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #007bff;
  background-color: #007bff;
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-radio .custom-control-label::before {
  border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-switch {
  padding-left: 2.25rem;
}

.custom-switch .custom-control-label::before {
  left: -2.25rem;
  width: 1.75rem;
  pointer-events: all;
  border-radius: 0.5rem;
}

.custom-switch .custom-control-label::after {
  top: calc(0.25rem + 2px);
  left: calc(-2.25rem + 2px);
  width: calc(1rem - 4px);
  height: calc(1rem - 4px);
  background-color: #adb5bd;
  border-radius: 0.5rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
}

.custom-switch .custom-control-label::after {
  transition: none;
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #fff;
  -webkit-transform: translateX(0.75rem);
  transform: translateX(0.75rem);
}

.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(2.25rem + 2px);
  margin-bottom: 0;
}

.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(2.25rem + 2px);
  margin: 0;
  opacity: 0;
}

.custom-file-input:focus ~ .custom-file-label {
  border-color: #80bdff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-file-input:disabled ~ .custom-file-label {
  background-color: #e9ecef;
}

.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}

.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}

.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(2.25rem + 2px);
  padding: 0.375rem 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}

.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: 2.25rem;
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
  color: #495057;
  content: "Browse";
  background-color: #e9ecef;
  border-left: inherit;
  border-radius: 0 0.25rem 0.25rem 0;
}

.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.75rem 1.25rem;
  color: inherit;
}

.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: .5;
}

.close:hover {
  color: #000;
  text-decoration: none;
}

.close:not(:disabled):not(.disabled) {
  cursor: pointer;
}

.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: .75;
}

button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

a.close.disabled {
  pointer-events: none;
}

.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}

/* 沒掛 class 的 ol／ul 內縮 40px（.list-unstyled／.nav 等類別選擇器優先）。 */
ol,
ul {
  padding-left: 40px;
}

/* 彈窗頁尾按鈕不換行，全部排在同一行。 */
.modal-footer {
  flex-wrap: nowrap;
}

/* 表格框線：儲存格上框線 1px #dee2e6、表頭底線 2px、tbody 之間 2px；儲存格不畫下框線。（同選擇器的內距在「表格儲存格內距」段） */
.table > :not(caption) > * > * {
  border-bottom-width: 0;
}

.table th,
.table td {
  border-top: 1px solid #dee2e6;
}

.table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
}

.table tbody + tbody {
  border-top: 2px solid #dee2e6;
}

/* 條紋與 hover 底色畫在列（tr）上、儲存格不疊色：條紋 rgba(0,0,0,.05)、hover rgba(0,0,0,.075) 字色 #212529；
   頁面樣式（如 .table-ui 的 #EEE 列底）覆寫列的背景即可生效。 */
.table-striped {
  --bs-table-striped-bg: transparent;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05);
}

.table-hover {
  --bs-table-hover-bg: transparent;
}

.table-hover tbody tr:hover {
  color: #212529;
  background-color: rgba(0, 0, 0, 0.075);
}

/* 響應式表格：.table-responsive(-sm/-md/-lg/-xl) 直接掛在 <table> 上也有效 —— 在對應寬度以下
   表格自成區塊、寬度 100%、超出的欄位在表格內左右捲動，不把整頁撐寬（清單頁在手機上的彈窗才蓋得住畫面）。 */
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-responsive > .table-bordered {
  border: 0;
}

@media (max-width: 575.98px) {
  .table-responsive-sm {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-responsive-sm > .table-bordered {
    border: 0;
  }
}

@media (max-width: 767.98px) {
  .table-responsive-md {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-responsive-md > .table-bordered {
    border: 0;
  }
}

@media (max-width: 991.98px) {
  .table-responsive-lg {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-responsive-lg > .table-bordered {
    border: 0;
  }
}

@media (max-width: 1199.98px) {
  .table-responsive-xl {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-responsive-xl > .table-bordered {
    border: 0;
  }
}

/* 提示框（.alert）內距 .75rem 1.25rem。 */
.alert {
  --bs-alert-padding-y: 0.75rem;
  --bs-alert-padding-x: 1.25rem;
}

/* ── 打包產物（resources/static）用到的 utility ────────────
   舊前端產物不隨 maven 重建、且 bootstrap-vue 會自行輸出這些類名，由本檔定義。 */

/* filter-multi-select-bundle.js 動態產生的 mr-2：右外距 .5rem。 */
.mr-2 {
  margin-right: 0.5rem !important;
}

/* bootstrap-vue 訊息框標題列的關閉鈕（ml-auto）：靠右。 */
.ml-auto {
  margin-left: auto !important;
}

/* bootstrap-vue 訊息框（toast）：顯示與否由外層 .b-toast 控制，內層 .toast 不掛 show，故 .toast 本身預設可見、掛 hide 才隱藏。
   外觀：最寬 350px、圓角 .25rem、邊框 rgba(0,0,0,.1)、陰影 0 .25rem .75rem rgba(0,0,0,.1)；標題列內距 .25rem .75rem、字色 #6c757d、無圓角。 */
.toast {
  --bs-toast-border-color: rgba(0, 0, 0, 0.1);
  --bs-toast-border-radius: 0.25rem;
  --bs-toast-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  --bs-toast-header-color: #6c757d;
  width: auto;
  max-width: 350px;
  overflow: hidden;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  opacity: 0;
}

.toast:not(.show) {
  display: block;
}

.toast:not(:last-child) {
  margin-bottom: 0.75rem;
}

.toast.showing {
  opacity: 1;
}

.toast.show {
  display: block;
  opacity: 1;
}

.toast.hide {
  display: none;
}

.toast-header {
  padding: 0.25rem 0.75rem;
  border-radius: 0;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col, .no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}

.dropdown-menu-right {
  right: 0;
  left: auto;
}

.dropdown-menu-left {
  right: auto;
  left: 0;
}

.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}

.badge-primary {
  color: #fff;
  background-color: #007bff;
}

.badge-secondary {
  color: #fff;
  background-color: #6c757d;
}

.badge-success {
  color: #fff;
  background-color: #28a745;
}

.badge-info {
  color: #fff;
  background-color: #17a2b8;
}

.badge-warning {
  color: #212529;
  background-color: #ffc107;
}

.badge-danger {
  color: #fff;
  background-color: #dc3545;
}

.badge-light {
  color: #212529;
  background-color: #f8f9fa;
}

.badge-dark {
  color: #fff;
  background-color: #343a40;
}

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-lighter {
  font-weight: lighter !important;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-bold {
  font-weight: 700 !important;
}

.font-weight-bolder {
  font-weight: bolder !important;
}

/* ── 色票、圓角、次要文字色 ─────────────────────────────
   Bootstrap 5.3 全走 CSS 變數，能在 :root 一次設定的就不逐元件覆寫。 */

/* 色票與斷點的短名變數（--primary／--blue／--breakpoint-md…）：供不經 Bootstrap 類名、
   直接引用變數的樣式使用（filter_multi_select.css 以 --primary 畫已選項目 badge 與勾選框）。 */
:root {
  --blue: #007bff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #28a745;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #fff;
  --gray: #6c757d;
  --gray-dark: #343a40;
  --primary: #007bff;
  --secondary: #6c757d;
  --success: #28a745;
  --info: #17a2b8;
  --warning: #ffc107;
  --danger: #dc3545;
  --light: #f8f9fa;
  --dark: #343a40;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/* 主題色：primary #007bff／success #28a745／info #17a2b8／dark #343a40；連結 #007bff、hover #0056b3；程式碼色 #e83e8c。
   （.btn-* 各自寫死變數，另段處理） */
:root {
  --bs-primary: #007bff;
  --bs-primary-rgb: 0, 123, 255;
  --bs-success: #28a745;
  --bs-success-rgb: 40, 167, 69;
  --bs-info: #17a2b8;
  --bs-info-rgb: 23, 162, 184;
  --bs-dark: #343a40;
  --bs-dark-rgb: 52, 58, 64;
  --bs-link-color: #007bff;
  --bs-link-color-rgb: 0, 123, 255;
  --bs-link-hover-color: #0056b3;
  --bs-link-hover-color-rgb: 0, 86, 179;
  --bs-code-color: #e83e8c;
  /* 圓角：一般 .25rem／sm .2rem／lg .3rem，form-control、card、dropdown、list-group、badge、alert、modal 共用。 */
  --bs-border-radius: 0.25rem;
  --bs-border-radius-sm: 0.2rem;
  --bs-border-radius-lg: 0.3rem;
  /* 次要文字色 #6c757d（text-muted／placeholder／breadcrumb active／dropdown-header）。 */
  --bs-secondary-color: #6c757d;
  --bs-secondary-color-rgb: 108, 117, 125;
  /* 強調色 #212529（表格文字、nav-tabs active 等）。 */
  --bs-emphasis-color: #212529;
  --bs-emphasis-color-rgb: 33, 37, 41;
  /* 半透明邊框 rgba(0,0,0,.125)（card／list-group）。 */
  --bs-border-color-translucent: rgba(0, 0, 0, 0.125);
  /* alert-* 各色的文字／底色／邊框三色組。 */
  --bs-primary-text-emphasis: #004085;
  --bs-primary-bg-subtle: #cce5ff;
  --bs-primary-border-subtle: #b8daff;
  --bs-secondary-text-emphasis: #383d41;
  --bs-secondary-bg-subtle: #e2e3e5;
  --bs-secondary-border-subtle: #d6d8db;
  --bs-success-text-emphasis: #155724;
  --bs-success-bg-subtle: #d4edda;
  --bs-success-border-subtle: #c3e6cb;
  --bs-info-text-emphasis: #0c5460;
  --bs-info-bg-subtle: #d1ecf1;
  --bs-info-border-subtle: #bee5eb;
  --bs-warning-text-emphasis: #856404;
  --bs-warning-bg-subtle: #fff3cd;
  --bs-warning-border-subtle: #ffeeba;
  --bs-danger-text-emphasis: #721c24;
  --bs-danger-bg-subtle: #f8d7da;
  --bs-danger-border-subtle: #f5c6cb;
  --bs-light-text-emphasis: #818182;
  --bs-light-bg-subtle: #fefefe;
  --bs-light-border-subtle: #fdfdfe;
  --bs-dark-text-emphasis: #1b1e21;
  --bs-dark-bg-subtle: #d6d8d9;
  --bs-dark-border-subtle: #c6c8ca;
}

/* 連結預設無底線、hover 才有；沒有 href 的 <a> 一律繼承文字色。 */
a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a:not([href]):not([tabindex]),
a:not([href]):not([tabindex]):hover,
a:not([href]):not([tabindex]):focus {
  color: inherit;
  text-decoration: none;
}

a:not([href]):not([tabindex]):focus {
  outline: 0;
}

/* 標題與 legend 字級固定，不隨視窗寬度縮放。 */
h1, .h1 { font-size: 2.5rem; }
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.75rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.25rem; }
h6, .h6 { font-size: 1rem; }
legend { font-size: 1.5rem; }

/* fieldset 標題（legend）以區塊排版嵌在邊框缺口中，不浮動。 */
legend {
  float: none;
  display: block;
  max-width: 100%;
  white-space: normal;
}

legend + * {
  clear: none;
}

/* iframe 保留 2px inset 邊框（行動投保報告書預覽）。 */
iframe {
  border: 2px inset;
}

/* 分隔線 1px rgba(0,0,0,.1)。 */
hr {
  border-top-color: rgba(0, 0, 0, 0.1);
  opacity: 1;
}

/* 容器：左右內距 15px，最大寬度 1140px（≥1400px 亦同）。 */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl {
  --bs-gutter-x: 30px;
}

@media (min-width: 1400px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl {
    max-width: 1140px;
  }
}

/* 輸入框：文字 #495057、邊框 #ced4da；focus 邊框 #80bdff＋.2rem 光暈；readonly 灰底 #e9ecef。
   附加文字方塊（.input-group-text）：文字 #495057、底 #e9ecef、邊框 #ced4da。 */
.form-control,
.form-select {
  color: #495057;
  border-color: #ced4da;
}

.form-control:focus,
.form-select:focus {
  color: #495057;
  border-color: #80bdff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.form-control[readonly] {
  background-color: #e9ecef;
  opacity: 1;
}

.input-group-text {
  color: #495057;
  background-color: #e9ecef;
  border-color: #ced4da;
}

/* 表單說明文字（.form-text）獨立成行，字級與顏色跟隨父層；`<small class="form-text">` 維持 80%；驗證訊息 80%。 */
.form-text {
  display: block;
  font-size: 1em;
  color: inherit;
}

small.form-text {
  font-size: 80%;
}

.valid-feedback,
.invalid-feedback {
  font-size: 80%;
}

/* type=file 的 .form-control：高度固定 calc(2.25rem + 2px)，選擇檔案鈕維持瀏覽器原生外觀（內距、底色、邊框、可點擊）。 */
.form-control[type="file"] {
  height: calc(2.25rem + 2px);
}

.form-control::file-selector-button {
  padding: revert;
  margin: revert;
  color: revert;
  background-color: revert;
  border: revert;
  border-radius: revert;
  pointer-events: revert;
  transition: none;
}

.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
  background-color: revert;
}

/* 檔案輸入框（.form-control-file）佔滿整行。 */
.form-control-file {
  display: block;
  width: 100%;
}

/* 單行表單（.form-inline）：橫向排列、垂直置中；≥576px 時內含控制項改 inline。 */
.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.form-inline .form-check {
  width: 100%;
}

@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-plaintext {
    display: inline-block;
  }
  .form-inline .input-group,
  .form-inline .custom-select {
    width: auto;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
}

/* 勾選框／單選鈕用瀏覽器原生控制項＋絕對定位：左內距 1.25rem、input 上移 .3rem；並排時間距 .75rem、input 右距 .3125rem；停用時標籤 #6c757d。
   appearance:auto 下瀏覽器會忽略 background／border，仍清掉以免 :focus 的 box-shadow 露出。 */
.form-check {
  position: relative;
  display: block;
  min-height: 0;
  padding-left: 1.25rem;
  margin-bottom: 0;
}

.form-check .form-check-input,
.form-check-input {
  position: absolute;
  float: none;
  width: auto;
  height: auto;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
  vertical-align: baseline;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
  background: none;
  border: 0;
  border-radius: 0;
  -webkit-print-color-adjust: economy;
  print-color-adjust: economy;
}

.form-check-input:focus {
  border-color: transparent;
  box-shadow: none;
}

.form-check-input:checked,
.form-check-input:active,
.form-check-input[type="checkbox"]:indeterminate {
  background: none;
  border-color: transparent;
  filter: none;
}

.form-check-input:disabled {
  opacity: 1;
}

.form-check-input:disabled ~ .form-check-label,
.form-check-input[disabled] ~ .form-check-label {
  color: #6c757d;
  opacity: 1;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}

.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}

/* 按鈕色票（各變體變數）：success #28a745、info #17a2b8、outline-primary #007bff、outline-success #28a745。
   （btn-primary 由 layout.css `.btn.btn-primary` 覆寫、btn-danger 由 layout.css !important 覆寫） */
.btn-success {
  --bs-btn-bg: #28a745;
  --bs-btn-border-color: #28a745;
  --bs-btn-hover-bg: #218838;
  --bs-btn-hover-border-color: #1e7e34;
  --bs-btn-active-bg: #1e7e34;
  --bs-btn-active-border-color: #1c7430;
  --bs-btn-disabled-bg: #28a745;
  --bs-btn-disabled-border-color: #28a745;
  --bs-btn-focus-shadow-rgb: 72, 180, 97;
}

.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: #17a2b8;
  --bs-btn-border-color: #17a2b8;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #138496;
  --bs-btn-hover-border-color: #117a8b;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #117a8b;
  --bs-btn-active-border-color: #10707f;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #17a2b8;
  --bs-btn-disabled-border-color: #17a2b8;
  --bs-btn-focus-shadow-rgb: 58, 176, 195;
}

.btn-outline-primary {
  --bs-btn-color: #007bff;
  --bs-btn-border-color: #007bff;
  --bs-btn-hover-bg: #007bff;
  --bs-btn-hover-border-color: #007bff;
  --bs-btn-active-bg: #007bff;
  --bs-btn-active-border-color: #007bff;
  --bs-btn-disabled-color: #007bff;
  --bs-btn-disabled-border-color: #007bff;
  --bs-btn-focus-shadow-rgb: 0, 123, 255;
}

.btn-outline-success {
  --bs-btn-color: #28a745;
  --bs-btn-border-color: #28a745;
  --bs-btn-hover-bg: #28a745;
  --bs-btn-hover-border-color: #28a745;
  --bs-btn-active-bg: #28a745;
  --bs-btn-active-border-color: #28a745;
  --bs-btn-disabled-color: #28a745;
  --bs-btn-disabled-border-color: #28a745;
  --bs-btn-focus-shadow-rgb: 40, 167, 69;
}

/* 按鈕互動態：secondary hover #5a6268／active #545b62；warning 文字 #212529、hover #e0a800／active #d39e00；btn-link 無底線、hover 才有。 */
.btn-secondary {
  --bs-btn-hover-bg: #5a6268;
  --bs-btn-hover-border-color: #545b62;
  --bs-btn-active-bg: #545b62;
  --bs-btn-active-border-color: #4e555b;
  --bs-btn-focus-shadow-rgb: 130, 138, 145;
}

.btn-warning {
  --bs-btn-color: #212529;
  --bs-btn-hover-color: #212529;
  --bs-btn-hover-bg: #e0a800;
  --bs-btn-hover-border-color: #d39e00;
  --bs-btn-active-color: #212529;
  --bs-btn-active-bg: #d39e00;
  --bs-btn-active-border-color: #c69500;
  --bs-btn-disabled-color: #212529;
  --bs-btn-focus-shadow-rgb: 222, 170, 12;
}

.btn-link {
  text-decoration: none;
}

.btn-link:hover {
  text-decoration: underline;
}

/* 表格文字色走 :root 的 --bs-emphasis-color（不在 .table 上覆寫 --bs-table-color，以免蓋掉 .table-dark 等變體）；.table-dark 格線 #32383e。 */
.table-dark {
  --bs-table-border-color: #32383e;
}

/* 卡片標題下距 .75rem。 */
.card {
  --bs-card-title-spacer-y: 0.75rem;
}

/* 下拉選單（含 bootstrap-select）：項目左右內距 1.5rem、邊框 rgba(0,0,0,.15)、hover 文字 #16181b、active 底色 #007bff。 */
.dropdown-menu {
  --bs-dropdown-item-padding-x: 1.5rem;
  --bs-dropdown-border-color: rgba(0, 0, 0, 0.15);
  --bs-dropdown-link-hover-color: #16181b;
  --bs-dropdown-link-active-bg: #007bff;
}

/* 清單群組：項目內距 .75rem 1.25rem、active #007bff。 */
.list-group {
  --bs-list-group-item-padding-x: 1.25rem;
  --bs-list-group-item-padding-y: 0.75rem;
  --bs-list-group-active-bg: #007bff;
  --bs-list-group-active-border-color: #007bff;
}

/* 分頁：文字 #007bff、hover 文字 #0056b3 底 #e9ecef、focus 不換色只加 .2rem 光暈、active 藍底白字、
   disabled 灰字 #6c757d 白底；內距 .5rem .75rem、行高 1.25。 */
.pagination {
  --bs-pagination-padding-y: 0.5rem;
  --bs-pagination-color: #007bff;
  --bs-pagination-hover-color: #0056b3;
  --bs-pagination-hover-bg: #e9ecef;
  --bs-pagination-focus-color: #007bff;
  --bs-pagination-focus-bg: #fff;
  --bs-pagination-focus-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
  --bs-pagination-active-bg: #007bff;
  --bs-pagination-active-border-color: #007bff;
  --bs-pagination-disabled-color: #6c757d;
  --bs-pagination-disabled-bg: #fff;
  --bs-pagination-disabled-border-color: #dee2e6;
}

.page-link {
  line-height: 1.25;
}

/* hover 的底色與文字色優先於 focus（同時成立時顯示 hover 外觀）。 */
.page-link:hover {
  color: var(--bs-pagination-hover-color);
  background-color: var(--bs-pagination-hover-bg);
}

.page-link:not(:disabled):not(.disabled) {
  cursor: pointer;
}

/* active／disabled 狀態只認 li.page-item 上的 class：連結自身掛 .active／.disabled 時維持一般外觀，
   由頁面樣式（layout.css 的 .page-item .page-link.active）決定目前頁的顯示。 */
.page-link.active {
  z-index: auto;
  color: var(--bs-pagination-color);
  background-color: var(--bs-pagination-bg);
  border-color: var(--bs-pagination-border-color);
}

.page-link.disabled {
  color: var(--bs-pagination-color);
  pointer-events: auto;
  background-color: var(--bs-pagination-bg);
  border-color: var(--bs-pagination-border-color);
}

.page-item.active .page-link {
  z-index: 1;
  color: var(--bs-pagination-active-color);
  background-color: var(--bs-pagination-active-bg);
  border-color: var(--bs-pagination-active-border-color);
}

/* 選擇器帶 li 層級，特異度高於無 href 連結的繼承色規則 a:not([href])，disabled 字色才會生效。 */
.page-item.disabled .page-link {
  color: var(--bs-pagination-disabled-color);
  pointer-events: none;
  cursor: auto;
  background-color: var(--bs-pagination-disabled-bg);
  border-color: var(--bs-pagination-disabled-border-color);
}

.nav-pills {
  --bs-nav-pills-link-active-bg: #007bff;
}

.nav-tabs {
  --bs-nav-tabs-link-active-color: #495057;
}

.progress {
  --bs-progress-bar-bg: #007bff;
}

/* 彈窗：頁尾內距 1rem、子元素左右間距 .25rem（gap 0）；內容邊框 rgba(0,0,0,.2)。 */
.modal {
  /* gap 要寫 0px：頁尾 padding 以 calc(padding - gap * .5) 計算，無單位的 0 會使整個 calc 失效 */
  --bs-modal-footer-gap: 0px;
  --bs-modal-border-color: rgba(0, 0, 0, 0.2);
}

.modal-footer > * {
  margin: 0;
}

.modal-footer > :not(:first-child) {
  margin-left: 0.25rem;
}

.modal-footer > :not(:last-child) {
  margin-right: 0.25rem;
}

/* 可關閉的提示框右側留 4rem 給關閉鈕。 */
.alert-dismissible {
  padding-right: 4rem;
}

/* 標籤（badge）內距 .25em .4em、pill 左右 .6em；bg-warning／bg-light 上用深色文字 #212529（淺底可讀）。 */
.badge {
  --bs-badge-padding-x: 0.4em;
  --bs-badge-padding-y: 0.25em;
}

.badge.rounded-pill {
  --bs-badge-padding-x: 0.6em;
}

.badge.bg-warning,
.badge.bg-light {
  color: #212529;
}

/* ── 互動態與列底色 ─────────────────────────────────── */

/* 表格儲存格底色透明，列（tr）的背景色直接可見（待刪列、行動投保件列、表頭色）。
   ⚠ 這條會蓋掉同特異度的 .table-dark 等變體 ⇒ 變體底色在下面重新宣告。 */
.table {
  --bs-table-bg: transparent;
}

.table-primary { --bs-table-bg: #b8daff; }
.table-secondary { --bs-table-bg: #d6d8db; }
.table-success { --bs-table-bg: #c3e6cb; }
.table-info { --bs-table-bg: #bee5eb; }
.table-warning { --bs-table-bg: #ffeeba; }
.table-danger { --bs-table-bg: #f5c6cb; }
.table-light { --bs-table-bg: #fdfdfe; }
.table-dark { --bs-table-bg: #212529; }

/* 按鈕 focus 光暈 .2rem（含滑鼠點擊後、到失焦前）：基底 rgba(0,123,255,.25)，各變體 .5；btn-link 無光暈、改底線。 */
.btn:focus,
.btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.btn-primary:focus, .btn-primary.focus, .btn-primary:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); }
.btn-secondary:focus, .btn-secondary.focus, .btn-secondary:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }
.btn-success:focus, .btn-success.focus, .btn-success:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }
.btn-info:focus, .btn-info.focus, .btn-info:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }
.btn-warning:focus, .btn-warning.focus, .btn-warning:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); }
.btn-danger:focus, .btn-danger.focus, .btn-danger:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }
.btn-light:focus, .btn-light.focus, .btn-light:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }
.btn-dark:focus, .btn-dark.focus, .btn-dark:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }
.btn-outline-primary:focus, .btn-outline-primary.focus, .btn-outline-primary:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); }
.btn-outline-secondary:focus, .btn-outline-secondary.focus, .btn-outline-secondary:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
.btn-outline-success:focus, .btn-outline-success.focus, .btn-outline-success:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
.btn-outline-info:focus, .btn-outline-info.focus, .btn-outline-info:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
.btn-outline-warning:focus, .btn-outline-warning.focus, .btn-outline-warning:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
.btn-outline-danger:focus, .btn-outline-danger.focus, .btn-outline-danger:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
.btn-outline-light:focus, .btn-outline-light.focus, .btn-outline-light:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
.btn-outline-dark:focus, .btn-outline-dark.focus, .btn-outline-dark:not(:disabled):not(.disabled):active:focus { box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
.btn-link:focus, .btn-link.focus { text-decoration: underline; box-shadow: none; }

/* 勾選框鍵盤 focus 外框交回瀏覽器預設（只有鍵盤 focus 才顯示）。 */
.form-check-input:focus {
  outline: revert;
}

/* 下拉選單停用項文字 #6c757d。 */
.dropdown-menu {
  --bs-dropdown-link-disabled-color: #6c757d;
}

/* 斷點以下的 col-{sm,md,lg,xl}-N 佔滿整行並換行，不在 .row 裡（.form-row／d-flex）也一樣；斷點以上由上方的 max-width 夾回欄寬。
   ⚠ 只給有斷點的 col-{bp}-N：col-N 任何寬度都有 width；col／col-auto 由 flex-basis 決定寬度。
   ⚠ 同時掛 col-auto 的（`col-md-4 col-auto`）依內容寬，要排除；排除條件放 :where() 不加特異度，讓下一條能靠載入順序覆寫。 */
:not(.row) > .col-sm-1:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-2:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-3:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-4:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-5:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-6:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-7:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-8:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-9:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-10:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-11:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-sm-12:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-1:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-2:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-3:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-4:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-5:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-6:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-7:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-8:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-9:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-10:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-11:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-md-12:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-1:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-2:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-3:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-4:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-5:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-6:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-7:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-8:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-9:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-10:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-11:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-lg-12:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-1:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-2:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-3:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-4:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-5:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-6:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-7:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-8:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-9:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-10:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-11:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)),
:not(.row) > .col-xl-12:where(:not(.col-auto):not(.col-sm-auto):not(.col-md-auto):not(.col-lg-auto):not(.col-xl-auto)) {
  width: 100%;
}

/* 表單控制項（.form-control）維持瀏覽器原生外觀：原生 <select> 才有系統箭頭、其他輸入型別保留原生控制項。
   舊版 Vue 產物與部分動態產生的 <select> 仍掛 .form-control（非 .form-select），沒有這條就沒有箭頭。 */
.form-control {
  height: calc(2.25rem + 2px);
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
}

/* 多列 <select> 與 <textarea> 高度依內容，不套上一條的單列高度。 */
select.form-control[size],
select.form-control[multiple],
textarea.form-control {
  height: auto;
}

/* 小／大尺寸控制項高度：sm＝1.8125rem＋2px、lg＝2.875rem＋2px（多列 select 同樣依內容）。 */
.form-control-sm {
  height: calc(1.8125rem + 2px);
}

.form-control-lg {
  height: calc(2.875rem + 2px);
}

select.form-control-sm[size],
select.form-control-sm[multiple],
select.form-control-lg[size],
select.form-control-lg[multiple] {
  height: auto;
}

/* 輸入框在 .input-group 內以 flex 分配寬度（width:1%），不受上一條的 100% 影響；本條 (0,2,0) 靠載入順序贏。 */
.input-group > .form-control,
.input-group > .form-select,
.input-group > .form-control-plaintext,
.input-group > .custom-file {
  width: 1%;
}

/* 所有 col-* 為 position:relative，作為絕對定位子元素的基準。 */
.col,
.col-auto,
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col-sm,
.col-md,
.col-lg,
.col-xl,
.col-sm-auto,
.col-md-auto,
.col-lg-auto,
.col-xl-auto,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12 {
  position: relative;
}
