﻿@charset "utf-8";
/* =====================================================================
   design-support.css
   讓 eYVTR_new 的日期元件（DatePickerTWFor / bootstrap-datetimepicker）
   與 Font Awesome 圖示，在「不載入 Bootstrap」的 _DesignLayout 下也能正常。
   僅補最小必要規則，並套用設計師暖色（primary #aa4b8f / accent #ff735d）。
   ===================================================================== */

/* ---------- 1. input-group：文字框 + 日曆鈕同一行 ---------- */
/* 定位錨點：讓 datetimepicker 彈窗以「查詢卡」為 relative 基準（不可用 .input-group
   本身當基準，否則外掛 place() 會把彈窗推到頁面很下面）；並確保容器不裁切彈窗。 */
.search-panel,
.organizer-search-panel {
    position: relative;
    overflow: visible;
    margin: 0 0 1.5rem;
    padding: 1.5rem;
    border: 1px solid #ead8c8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(115, 77, 0, .1);
}
/* 雙軌意願表：第一步先固定申請類別，避免進入表單後再切換而遺失資料。 */
.ds003-application-entry { max-width: 56rem; }
.ds003-application-types { min-width: 0; margin: 0; padding: 0; border: 0; }
.ds003-application-types legend { width: 100%; margin: 0 0 1rem; color: #6c3822; font-size: 1rem; font-weight: 700; text-align: center; }
.ds003-application-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ds003-application-type { position: relative; display: block; margin: 0; cursor: pointer; }
.ds003-application-type input { position: absolute; top: 1.25rem; left: 1.25rem; width: 1.25rem; height: 1.25rem; margin: 0; accent-color: #aa4b8f; }
.ds003-application-type > span { display: grid; min-height: 7rem; align-content: center; gap: .35rem; padding: 1.2rem 1.2rem 1.2rem 3.25rem; border: 2px solid #dfd4ca; border-radius: .75rem; background: #fffdf9; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.ds003-application-type strong { color: #6c3822; font-size: 1.2rem; }
.ds003-application-type small { color: #6f625a; font-size: .95rem; line-height: 1.5; }
.ds003-application-type input:checked + span { border-color: #aa4b8f; background: #fff5fb; box-shadow: 0 0 0 3px rgba(170, 75, 143, .12); }
.ds003-application-type input:focus-visible + span { outline: 3px solid #1b6ec2; outline-offset: 3px; }
.ds003-application-hint { margin: 1.25rem 0 0; padding: .85rem 1rem; border-radius: .5rem; background: #f5f2ef; color: #655a53; text-align: center; }
.ds003-application-notice { margin-top: 1.5rem; border: 1px solid #edcba7; border-radius: .75rem; overflow: hidden; }
.ds003-application-notice[hidden] { display: none; }
.ds003-application-notice h3 { margin: 0; padding: .8rem 1rem; background: #fff3e4; color: #6c3822; font-size: 1.15rem; }
.ds003-application-notice__content { min-height: 10rem; max-height: 24rem; padding: 1.25rem; overflow-y: auto; background: #fff; color: #493f39; line-height: 1.75; white-space: pre-line; }

@media (max-width: 767.98px) {
    .ds003-application-type-grid { grid-template-columns: 1fr; }
    .ds003-application-type > span { min-height: 5.5rem; }
    .ds003-application-notice__content { max-height: none; }
    .ds003-application-entry .registration-actions { display: grid; grid-template-columns: 1fr; }
    .ds003-application-entry .registration-actions .btn { width: 100%; }
}


/* 雙軌意願表第二階段：沿用帳號申請表單元件，保留 MVC 欄位與連動行為。 */
.ds003-form-page .registration-form-section { max-width: 62rem; margin-inline: auto; margin-bottom: 1.5rem; }
.ds003-registration-form { max-width: 62rem; margin-inline: auto; }
.ds003-selected-type { display: flex; align-items: center; justify-content: center; gap: .75rem; max-width: 62rem; margin: 0 auto 1rem; }
.ds003-selected-type strong { color: #6c3822; }
.ds003-selected-type span { padding: .35rem .9rem; border-radius: 999px; background: #f6dfc7; color: #6c3822; font-weight: 800; }
.ds003-account-value { display: flex; align-items: center; width: min(36rem, 100%); min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid #d8d0ca; border-radius: .45rem; background: #f6f4f2; color: #514943; overflow-wrap: anywhere; }
.ds003-form-page .required-mark { color: #b42318; font-weight: 800; }
@media (max-width: 767.98px) {
    .ds003-selected-type { align-items: flex-start; flex-direction: column; }
    .ds003-form-page .registration-actions { display: grid; grid-template-columns: 1fr; }
    .ds003-form-page .registration-actions .btn { width: 100%; }
}

/* 雙軌意願表第三階段：後台等候訊息維持原資料來源，以完成狀態卡呈現。 */
.ds003-result-card { width: min(46rem, 100%); margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid #dfe4c7; border-radius: 1rem; background: #fff; box-shadow: 0 8px 24px rgba(83, 91, 45, .12); text-align: center; }
.ds003-result-card__icon { display: inline-grid; place-items: center; width: 4rem; height: 4rem; margin-bottom: 1rem; border-radius: 50%; background: var(--member-accent, #667600); color: #fff; font-size: 2rem; font-weight: 900; }
.ds003-result-card h2 { margin: 0 0 1rem; color: var(--member-accent-dark, #4d5134); font-size: clamp(1.4rem, 3vw, 1.8rem); }
.ds003-result-card__message { max-height: 24rem; padding: 1.25rem; overflow-y: auto; border: 1px solid #e3dcd7; border-radius: .75rem; background: #fffdf9; color: #493f39; line-height: 1.8; text-align: left; white-space: pre-line; }
@media (max-width: 767.98px) {
    .ds003-result-card { padding: 1.25rem; }
    .ds003-result-card__message { max-height: none; }
    .ds003-result-card .registration-actions .btn { width: 100%; }
}

.organizer-search-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.organizer-search-field:nth-child(2) { grid-column: span 2; }
.organizer-search-field { min-width: 0; }
.organizer-search-field label { display: block; margin-bottom: .35rem; color: #5e3927; font-weight: 700; }
.organizer-search-field input,
.organizer-search-field select { width: 100%; min-width: 0; min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid #b9a89c; border-radius: 9px; background: #fff; color: var(--text); font: inherit; }
.organizer-search-field input:focus,
.organizer-search-field select:focus { border-color: #b9472c; outline: 3px solid rgba(26, 115, 232, .25); outline-offset: 1px; }
.organizer-search-actions { display: flex; justify-content: center; margin-top: 1.25rem; }
.organizer-search-actions .btn { min-width: 10rem; }
.organizer-results { min-width: 0; }
.organizer-results-table { min-width: 68rem; }
.organizer-results-table th,
.organizer-results-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.organizer-results-table th:nth-child(3),
.organizer-results-table td:nth-child(3) { text-align: left; }
.organizer-results-table td a,
.organizer-results-table td a:hover,
.organizer-results-table td a:focus-visible { color: #8b2c49 !important; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.organizer-results-table td a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.organizer-info-page .result-pagination .pageLink .pageStatus { border-color: #7a2b3a; background: #7a2b3a !important; color: #fff !important; font-weight: 700; opacity: 1; }
.organizer-info-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }

.news-search-grid,
.news-search-field--date,
.organizer-search-field,
.form-row,
.date-range,
.date-range__controls,
.news-date-range,
.city-row,
.city-row__controls {
    overflow: visible;
}

.input-group {
    position: relative;   /* 作為日曆彈窗的定位基準 */
    display: flex;
    width: 100%;
}

.input-group .form-control {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin-bottom: 0;
    border-radius: .35rem 0 0 .35rem;
}

/* 隱藏西元值 hidden 欄位（不佔版面） */
.input-group .datepickerinput {
    display: none;
}

.input-group-btn {
    flex: 0 0 auto;
    display: flex;
}

.datepicker-outline .open-datepicker {
    display: block;
    padding: .5rem .7rem;
    border: 1px solid #bbb;
    border-left: 0;
    border-radius: 0 .35rem .35rem 0;
    background: #aa4b8f;
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    line-height: 1.5;
}

.datepicker-outline .open-datepicker:hover,
.datepicker-outline .open-datepicker:focus {
    background: #8f3c78;
    color: #fff;
}

/* 唯讀日期框：外觀維持白底可讀 */
.datepicker-outline input[readonly] {
    background-color: #fff;
    cursor: pointer;
}

/* 開訓日期區間：兩個日期框並排、~ 置中（qsearch 綜合查詢等） */
.qsearch .date-range {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: nowrap;
    max-width: 34rem;
}
.qsearch .date-range .input-group {
    width: auto;
    flex: 1 1 0;
    min-width: 0;
}
.qsearch .date-range .date-sep {
    flex: 0 0 auto;
    color: #8f3c78;
    font-weight: 700;
    font-size: 1.1rem;
    padding: 0 .15rem;
    line-height: 1;
}
@media (max-width: 768px) {
    .qsearch .date-range { flex-wrap: wrap; max-width: none; }
    .qsearch .date-range .input-group { flex: 1 1 100%; width: 100%; }
    .qsearch .date-range .date-sep { flex: 1 1 100%; text-align: center; }
}

/* ---------- 2. datetimepicker 彈窗（補 Bootstrap3 基礎） ---------- */
.bootstrap-datetimepicker-widget.dropdown-menu {
    /* 直接用 CSS 強制彈窗顯示在欄位正下方，不依賴外掛 place() 的座標計算（避免掉到最下方） */
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    margin-top: .3rem !important;
    z-index: 9999;
    display: block;
    float: none;
    width: auto;
    min-width: 19rem;
    padding: .5rem;
    list-style: none;
    background: #fff;
    border: 1px solid #e0d3c4;
    border-radius: .8rem;
    box-shadow: 0 8px 24px rgba(128, 82, 47, .22);
}

.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before,
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
    display: none;
}

.bootstrap-datetimepicker-widget .list-unstyled {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bootstrap-datetimepicker-widget table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.bootstrap-datetimepicker-widget table th,
.bootstrap-datetimepicker-widget table td {
    text-align: center;
    padding: .4rem .5rem;
    border-radius: .35rem;
    line-height: 1.4;
}

.bootstrap-datetimepicker-widget table th {
    color: #746961;
    font-weight: 700;
}

.bootstrap-datetimepicker-widget table th.picker-switch {
    width: 60%;
    font-weight: 700;
    color: #aa4b8f;
}

.bootstrap-datetimepicker-widget table th.prev,
.bootstrap-datetimepicker-widget table th.next,
.bootstrap-datetimepicker-widget table th.picker-switch,
.bootstrap-datetimepicker-widget table td.day,
.bootstrap-datetimepicker-widget table td span {
    cursor: pointer;
}

.bootstrap-datetimepicker-widget table th:hover,
.bootstrap-datetimepicker-widget table td.day:hover,
.bootstrap-datetimepicker-widget table td.hour:hover,
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td span:hover {
    background: #ffe3c7;
}

.bootstrap-datetimepicker-widget table td.old,
.bootstrap-datetimepicker-widget table td.new {
    color: #bbb;
}

.bootstrap-datetimepicker-widget table td.today {
    background: #ffd0ad;
}

.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover,
.bootstrap-datetimepicker-widget table td span.active {
    background: #aa4b8f;
    color: #fff;
}

.bootstrap-datetimepicker-widget table td span {
    display: inline-block;
    width: 3.6rem;
    height: 2.6rem;
    line-height: 2.6rem;
    margin: 2px 1.5px;
    border-radius: .35rem;
}

.bootstrap-datetimepicker-widget .btn {
    background: transparent;
    border: 0;
    cursor: pointer;
    color: #aa4b8f;
}

.bootstrap-datetimepicker-widget a[data-action] {
    color: #aa4b8f;
    padding: .3rem;
}

.bootstrap-datetimepicker-widget .glyphicon,
.bootstrap-datetimepicker-widget .fa {
    display: inline-block;
    color: inherit;
}

/* 底部工具列（today/clear/close） */
.bootstrap-datetimepicker-widget .picker-switch a[data-action] {
    height: auto;
    line-height: normal;
}

/* ---------- 3. 分頁列（_PagingLink 的 .search-pager）暖色膠囊 ---------- */
.search-pager {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    justify-content: flex-end;
    margin: 1rem 0;
}

.search-pager form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
}

.search-pager button,
.search-pager .btn {
    border: 1px solid #e0c6b3;
    background: #fff;
    color: #8f3c78;
    border-radius: 1.2rem;
    padding: .35rem 1rem;
    cursor: pointer;
    font: inherit;
}

.search-pager button:hover:not([disabled]) {
    background: #aa4b8f;
    color: #fff;
    border-color: #aa4b8f;
}

.search-pager button[disabled] {
    color: #bbb;
    background: #f4efe8;
    cursor: default;
}

.search-pager .page-status,
.search-pager span {
    color: #746961;
    padding: 0 .5rem;
}

/* course-table：對齊 Design Baseline 的共用清單表格元件。 */
.course-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    box-shadow: 0 3px 14px rgba(0, 0, 0, .14);
}

.course-table-wrap:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
}

.course-table {
    width: 100%;
    min-width: 52rem;
    border-collapse: collapse;
}

.course-table caption {
    margin-bottom: .75rem;
    color: var(--text);
    font-weight: 700;
    text-align: left;
}

.course-table th,
.course-table td {
    padding: .3rem 1rem;
    border: none;
    text-align: left;
    vertical-align: middle;
}

.course-table th {
    background: #89304F;
    color: #fff;
    text-align: center;
    white-space: nowrap;
}

.course-table tbody tr:nth-child(odd) td { background: #fff; }
.course-table tbody tr:nth-child(even) td { background: #f4f4f4; }
.course-table tbody td { transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.course-table tbody tr:hover td { background: #fff3e8; }
.course-table tbody td:hover {
    position: relative;
    background: #f8dfcf;
    color: #7d2c18;
    box-shadow: inset 0 0 0 2px #d65b3a;
}

.course-table th:nth-child(1),
.course-table th:nth-child(3),
.course-table th:nth-child(5),
.course-table th:nth-child(6),
.course-table td:nth-child(1),
.course-table td:nth-child(3),
.course-table td:nth-child(5),
.course-table td:nth-child(6) { text-align: center; }

.course-table td:nth-child(5) { white-space: nowrap; }

/* course-table 空資料列（沿用舊 _GridRows「查無資料」樣式，置中暖色） */
.course-table td[colspan] {
    text-align: center;
    color: #a93f27;
    padding: 1.2rem;
}

/* ---------- 一般內頁：Design Baseline 共用內容框架與政策宣告 ---------- */
.inner-content-shell {
    width: 100%;
    padding: 1rem 0 3rem;
    background: #fff
}

.inner-content-shell__inner {
    width: min(1200px, calc(100% - 48px));
    margin-inline: auto
}

.breadcrumb {
    margin-bottom: 1.5rem;
    color: var(--muted);
    font-size: 1rem
}

.breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none
}

.breadcrumb li + li::before {
    content: "/";
    margin-right: .4rem;
    color: var(--color-hint, #999)
}

.breadcrumb a {
    color: #7a4d3b !important;
    text-decoration: underline;
    text-underline-offset: .2em
}

.page-header { margin-bottom: 1rem; }

.page-title {
    margin: 0;
    color: #d65b3a;
    font-size: 1.8rem;
    line-height: 1.3
}

.sitemap-note {
    margin: 0 0 2rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid #f0d0bb;
    border-left: 6px solid #d65b3a;
    border-radius: 18px;
    background: linear-gradient(90deg, rgba(255, 243, 232, .92), rgba(255, 255, 255, .95));
    color: #4b403c;
    box-shadow: 0 6px 18px rgba(128, 82, 47, .08)
}

.sitemap-note h2 {
    margin: 0 0 .45rem;
    color: #8f294d;
    font-size: 1.15rem;
    line-height: 1.4
}

.sitemap-note p { margin: 0; line-height: 1.8; }

.sitemap-note p + p,
.sitemap-note p + ul,
.sitemap-note p + ol,
.sitemap-note ul + p,
.sitemap-note ol + p { margin-top: .85rem; }

.sitemap-note ul,
.sitemap-note ol {
    margin: .5rem 0 0;
    padding-left: 1.5rem;
    line-height: 1.8
}

.sitemap-note li + li { margin-top: .25rem; }

.sitemap-note kbd {
    display: inline-block;
    min-width: 1.45em;
    padding: .05em .35em;
    border: 1px solid #d6c7bc;
    border-radius: .35rem;
    background: #fff;
    color: #7a332f;
    font-family: inherit;
    font-size: .92em;
    font-weight: 700;
    text-align: center;
    box-shadow: inset 0 -1px 0 rgba(80, 66, 47, .16)
}

.policy-note__section + .policy-note__section {
    margin-top: 1.35rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(214, 91, 58, .18)
}

.policy-note__section h3 {
    margin: 0 0 .55rem;
    color: #9b3f24;
    font-size: 1.08rem;
    line-height: 1.5
}

.policy-note__list { padding-left: 1.6rem; }
.policy-note__list li { padding-left: .15rem; }

@media (max-width: 900px) {
    .inner-content-shell {
        width: calc(100% - 32px);
        max-width: 760px;
        margin: 1.25rem auto;
        padding: 1.5rem 1rem 2rem;
        border-radius: 2rem
    }
    .inner-content-shell__inner { width: 100%; min-width: 0; }
}

@media (max-width: 560px) {
    .breadcrumb { margin-bottom: 1rem; font-size: .95rem; }
    .page-header { margin-bottom: 1.5rem; }
    .page-title { font-size: 1.75rem; }
    .sitemap-note { padding: 1rem; border-radius: 14px; }
}

/* ---------- 4. 計畫功能選單（plan-local-nav）補充 ---------- */
/* 只有「純檢視（橘）」一組時滿版顯示，不留右側空欄 */
.plan-local-nav--single {
    grid-template-columns: 1fr;
}

/* ===================================================================
   計畫功能頁統一頁首（_PlanPageHeader）
   讓功能頁（_MainLayout，未載入設計師 style.css）能呈現與計畫入口頁
   （Main/IndexP4 等，走 _DesignLayout）完全相同的頁首，消除「跳到另一個
   系統」的分界感。以下為自 style.css 移植的桌機基礎樣式，僅在頁首容器
   .plan-page-header 內生效，不影響其他頁面既有排版。
   =================================================================== */
/* 有計畫頁首的功能頁，內容區改為「滿版白底」，與計畫入口頁／FAQ 的
   .inner-content-shell 一致；否則頁首會直接落在暖色背景上，看起來仍是兩套版面。
   main.content 只包住頁面內容（不含頁首頁尾），故可安全上底色。 */
main.content:has(.plan-page-header) {
    position: relative;
    /* 比照計畫簡介頁（_DesignLayout 的 .main-content）：白底區塊上下各留 .8rem
       暖色間距，白底才不會直接連著上方選單與下方頁尾 */
    padding-top: .8rem;
    padding-bottom: .8rem;
}
main.content:has(.plan-page-header)::before {
    content: "";
    position: absolute;
    top: .8rem;
    bottom: .8rem;
    left: calc(50% - 50vw);
    width: 100vw;
    background: #fff;
    z-index: 0;
}
main.content:has(.plan-page-header) > * {
    position: relative;
    z-index: 1;
}
/* 內容寬度與左右對齊比照計畫入口頁／FAQ（設計師版面的 .container = 1200px 置中），
   否則功能頁會沿用 Bootstrap 較寬的容器，兩邊看起來寬窄不一。
   同時補上白底內部的上下留白（比照 .inner-content-shell 的 padding）。 */
main.content:has(.plan-page-header) > .container,
/* 有些明細頁的 .container 被 Html.BeginForm 包在 <form> 裡（例如 YR002/Detail、YR003/Edit、
   YR007/Edit），不是 main.content 的直接子代，會吃不到寬度限制而比清單頁寬，切換時就跑版。 */
main.content:has(.plan-page-header) > form > .container {
    width: min(1200px, 100% - 48px);
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
    padding-top: 1rem;
    padding-bottom: 3rem;
}
main.content:has(.plan-page-header) > .container > .col-sm-12,
main.content:has(.plan-page-header) > form > .container > .col-sm-12 {
    padding-left: 0;
    padding-right: 0;
}
/* 這些頁的最外層原本是 .index-search 橘框卡片，改用本 class 取消外框，
   避免白底之上又疊一層橘色邊框 */
.plan-page-body {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
}

.plan-page-header {
    margin: 0;
    padding: 0;
    border-bottom: 0;
}

.plan-page-header .breadcrumb {
    margin-bottom: 1rem;
    color: #746961;
    font-size: .95rem;
}
.plan-page-header .breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.plan-page-header .breadcrumb li + li::before {
    content: "/";
    margin-right: .4rem;
    color: #b9a08d;
}
/* 功能頁的全域藍色連結規則特異性較高，麵包屑與標題連結需明確覆蓋 */
.plan-page-header .breadcrumb a {
    color: #7a4d3b !important;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.plan-page-header .breadcrumb li[aria-current] { color: #746961; }

/* 麵包屑與大標之間的距離：功能頁吃到 Bootstrap .page-header 的 margin-top:40px，
   計畫入口頁（_DesignLayout 沒載 Bootstrap）則沒有，兩邊看起來不一樣。
   這裡明確指定，兩種版型都以功能頁的呈現為準。 */
.plan-page-header .page-header {
    margin: 2.5rem 0 .6rem;
    border-bottom: 0;
}
.plan-page-header .plan-detail-header {
    display: grid;
    grid-template-columns: minmax(19rem, .85fr) minmax(0, 2fr);
    align-items: stretch;
    margin-bottom: .5rem;
    padding: .5rem 0 1.5rem;
}
.plan-page-header .plan-detail-header > .page-header {
    display: flex;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 1rem;
}
.plan-page-header .plan-detail-header--single-nav {
    grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .85fr);
}
.plan-page-header .plan-detail-header--single-nav .plan-local-nav {
    justify-self: end;
    width: 100%;
    max-width: 29rem;
}
/* 功能頁的 h1 預設不是粗體，需明確指定才會與計畫入口頁一致 */
.plan-page-header .page-title {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 700 !important;
    line-height: 1.3;
    white-space: normal;
}
.plan-page-header .page-title a { color: inherit !important; text-decoration: none !important; }
.plan-page-header .page-title a:hover,
.plan-page-header .page-title a:focus-visible { text-decoration: underline !important; }

.plan-page-header .plan-local-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
}
/* 只有免登入功能的計畫（如企業預聘青年計畫）沒有右側「需登入」區，改滿版 */
.plan-page-header .plan-local-nav--single {
    grid-template-columns: 1fr;
}
.plan-page-header .plan-local-nav ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .2rem 1rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}
.plan-page-header .plan-local-nav__group {
    display: flex;
    align-items: center;
    padding: .25rem 1rem;
    border-left: 1px solid #aaa;
}
.plan-page-header .plan-local-nav--labeled { gap: .75rem; }
.plan-page-header .plan-local-nav--labeled .plan-local-nav__group {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: .4rem;
    padding: .65rem .85rem;
    border: 1px solid #ead5c9;
    border-radius: 14px;
    background: #fffaf6;
}
.plan-page-header .plan-local-nav--labeled .plan-local-nav__group--registration {
    border-color: #dce1c4;
    background: #fafbf3;
}
.plan-page-header .plan-local-nav__title {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-height: 1.75rem;
    margin: 0;
    padding: 0 .4rem .35rem;
    border-bottom: 1px solid #ead5c9;
    color: #9b3f24;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}
.plan-page-header .plan-local-nav__title--member {
    border-bottom-color: #dce1c4;
    color: #526d00;
}
.plan-page-header .plan-local-nav__lock {
    flex: 0 0 auto;
    font-size: .9rem;
    line-height: 1;
}
.plan-page-header .plan-local-nav__badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.4rem;
    margin-left: auto;
    padding: .1rem .55rem;
    border: 1px solid #83933d;
    border-radius: 999px;
    background: #fff;
    color: #526d00;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.plan-page-header .plan-local-nav__group--plan ul {
    grid-template-rows: repeat(3, minmax(1.75rem, auto));
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
}
/* 功能頁有一條全域的藍色連結規則（特異性較高），需以 !important 覆蓋，
   否則功能選單會變成藍色小字，與計畫入口頁對不起來。 */
.plan-page-header .plan-local-nav a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 1.75rem;
    padding: .25rem .2rem .25rem 1.5rem;
    border-radius: 8px;
    color: #666 !important;
    font-size: 1rem !important;
    line-height: 1.4;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.plan-page-header .breadcrumb { font-size: 1rem; }
.plan-page-header .plan-local-nav a::before {
    content: "";
    position: absolute;
    left: .6rem;
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: #ff743b;
}
.plan-page-header .plan-local-nav__group--registration a::before { background: #8dbd00; }
.plan-page-header .plan-local-nav__group--plan a:hover,
.plan-page-header .plan-local-nav__group--plan a:focus-visible {
    background: #fff0e8;
    color: #b9472c !important;
    box-shadow: inset 0 5px 8px -7px rgba(115, 77, 0, .55);
}
.plan-page-header .plan-local-nav__group--registration a:hover,
.plan-page-header .plan-local-nav__group--registration a:focus-visible {
    background: #f3f8dd;
    color: #526d00 !important;
    box-shadow: inset 0 5px 8px -7px rgba(82, 109, 0, .5);
}
/* 目前所在的功能 */
.plan-page-header .plan-local-nav a.is-current {
    color: #b9472c !important;
    font-weight: 700;
    background: #fff0e8;
    box-shadow: inset 0 0 0 1px rgba(185, 71, 44, .24);
}
.plan-page-header .plan-local-nav__group--registration a.is-current {
    color: var(--member-accent-dark, #526d00) !important;
    background: var(--member-accent-soft, #f3f8dd);
    box-shadow: inset 0 0 0 1px rgba(102, 118, 0, .24);
}

/* 外部網站標註（原本僅螢幕閱讀器可讀，改為明示） */
.nav-newwin {
    margin-left: .25rem;
    color: #8a7a70;
    font-size: .82em;
    font-weight: 400;
    white-space: nowrap;
}
.external-link-icon {
    display: inline-grid;
    place-items: center;
    width: 1.1rem;
    height: 1.1rem;
    margin-left: .3rem;
    border: 1px solid currentColor;
    border-radius: 4px;
    color: #76570b;
    font-family: Arial, sans-serif;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1;
    vertical-align: .08em;
}
.plan-local-nav__group--registration .external-link-icon { color: #526d00; }
.footer-nav .external-link-icon { color: currentColor; opacity: .9; }
a:hover .external-link-icon,
a:focus-visible .external-link-icon { opacity: 1; }

@media (max-width: 900px) {
    .plan-page-header .plan-detail-header { grid-template-columns: 1fr; }
    .plan-page-header .plan-local-nav { grid-template-columns: 1fr; }
    .plan-page-header .plan-local-nav__group {
        padding: .65rem .85rem;
    }
    .plan-page-header .plan-local-nav__group--plan ul {
        grid-template-rows: none;
        grid-auto-flow: row;
    }
}

@media (max-width: 560px) {
    .plan-page-header .plan-local-nav ul,
    .plan-page-header .plan-local-nav__group--plan ul { grid-template-columns: 1fr; }
    .plan-page-header .page-title { font-size: 1.45rem; }
}

/* ===================================================================
   計畫簡介／聯絡窗口內容（資料庫 e_plan_info）
   原始內容是 Excel 貼上的版面表格，已整理成「標題＋段落」與「資料表」，
   這裡統一字級、行距與配色，讓各計畫呈現一致。
   =================================================================== */
.plan-info {
    color: #40332f;
    font-size: 1rem;
    line-height: 1.95;
}
.plan-info__title {
    margin: 1.4rem 0 .45rem;
    padding-left: .7rem;
    border-left: 4px solid #e8821e;
    color: #8f3c78;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.5;
}
.plan-info__title:first-child { margin-top: .2rem; }
.plan-info__text {
    margin: .25rem 0 .85rem;
    text-align: justify;
    word-break: break-word;
}
.plan-info a { word-break: break-all; }

/* 聯絡窗口等資料表 */
.plan-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: .6rem 0 1rem;
    background: #fff;
}
.plan-info-table caption {
    caption-side: top;
    padding: .3rem 0 .6rem;
    color: #89304f;
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
}
.plan-info-table th,
.plan-info-table td {
    padding: .5rem .7rem;
    border: 1px solid #e5d3bd;
    font-size: .95rem;
    line-height: 1.7;
    vertical-align: middle;
    word-break: break-word;
}
.plan-info-table th {
    background: #89304f;
    color: #fff;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}
.plan-info-table tbody tr:nth-child(even) td { background: #faf5ef; }
.plan-info-table tbody tr:hover td { background: #fdf1e2; }
/* 表格可橫向捲動，手機不爆版 */
.plan-info--table { overflow-x: auto; }

@media (max-width: 768px) {
    .plan-info__title { font-size: 1rem; }
    .plan-info-table th, .plan-info-table td { font-size: .9rem; padding: .4rem .5rem; }
}

/* ===================================================================
   常見問題（FAQ）：點類別直接在下方展開問與答，不再另開明細頁
   =================================================================== */
.faq-hint {
    margin: .2rem 0 .6rem;
    color: #746961;
    font-size: .92rem;
}

/* 類別按鈕（整列可點） */
.faq-toggle {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .35rem .2rem;
    background: none;
    border: 0;
    color: #185fa5;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.faq-toggle:hover .faq-toggle__text,
.faq-toggle:focus-visible .faq-toggle__text { text-decoration: underline; }
.faq-toggle.is-open { color: #b9472c; font-weight: 700; }
.faq-toggle__icon {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    position: relative;
    border-radius: 50%;
    background: #e8821e;
    transition: transform .2s ease, background-color .2s ease;
}
.faq-toggle__icon::before,
.faq-toggle__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: .55rem;
    height: 2px;
    background: #fff;
    transform: translate(-50%, -50%);
}
.faq-toggle__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-toggle.is-open .faq-toggle__icon { background: #b9472c; }
.faq-toggle.is-open .faq-toggle__icon::after { opacity: 0; }

/* 展開區 */
.faq-row--panel > td {
    padding: 0 !important;
    background: #fffaf3 !important;
}
.faq-panel { padding: .9rem 1.1rem; }
.faq-panel__loading,
.faq-qa__empty { margin: 0; color: #8a7a70; font-size: .95rem; }

.faq-qa { margin: 0; padding: 0; list-style: none; }
.faq-qa__item {
    padding: .85rem 0;
    border-bottom: 1px dashed #ecd9c2;
}
.faq-qa__item:last-child { border-bottom: 0; }
.faq-qa__q,
.faq-qa__a {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    text-align: left;
}
.faq-qa__q { margin-bottom: .45rem; }
.faq-qa__tag {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1;
}
.faq-qa__tag--q { background: #89304f; }
.faq-qa__tag--a { background: #6f9a1e; }
.faq-qa__text {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.85;
    word-break: break-word;
    white-space: pre-line;
}
.faq-qa__q .faq-qa__text { font-weight: 700; color: #40332f; }
.faq-qa__a .faq-qa__text { color: #5b4c44; }
.faq-qa__date {
    margin: .5rem 0 0 2.2rem;
    color: #9c8b80;
    font-size: .84rem;
}

/* 展開列不套用清單的白灰相間（該斑馬紋規則帶 !important 且特異性較高，需再拉高） */
table.course-table.faq-table tbody tr.faq-row--panel > td,
table.course-table tbody tr.faq-row--panel:nth-child(even) > td,
table.course-table tbody tr.faq-row--panel:nth-child(odd) > td {
    background: #fffaf3 !important;
}
/* 展開中的圖示改為紅棕（base 規則同層級，這裡明確拉高） */
.faq-toggle.is-open > .faq-toggle__icon { background: #b9472c !important; }

@media (max-width: 768px) {
    /* 手機：隱藏計畫名稱欄，畫面留給類別與展開內容 */
    .faq-table .faq-col-plan,
    .faq-table tbody tr.faq-row > td:nth-child(2) { display: none; }
    .faq-panel { padding: .7rem .3rem; }
    .faq-qa__tag { width: 1.45rem; height: 1.45rem; font-size: .78rem; }
    .faq-qa__date { margin-left: 0; }
}

/* 多模式計畫（如 IndexP4）各模式子標題 */
.plan-mode-title {
    margin: 1.6rem 0 .5rem;
    padding-left: .7rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: #9b1f42;
    border-left: 5px solid #ff743b;
}

.plan-mode-title:first-of-type {
    margin-top: .4rem;
}

/* 多模式計畫頁（IndexP4）標題比照計畫詳情的酒紅色 */
.plan-title--maroon {
    color: #b12d2b;
}

/* 點點圖例（橘＝免登入檢視／綠＝需登入使用） */
.plan-nav-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
    margin: .2rem 0 1rem;
    font-size: .9rem;
    color: #746961;
}

.plan-nav-legend span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.plan-nav-legend span::before {
    content: "";
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
}

.plan-nav-legend .legend-view::before {
    background: #ff743b;
}

.plan-nav-legend .legend-login::before {
    background: #8dbd00;
}

/* =====================================================================
   所有清單表格（.table-newsList / .course-table）手機版 → 卡片(區塊)顯示。
   欄位名稱由 responsive-list.js 複製到 td[data-label]；此處於 <768px 轉卡片。
   ===================================================================== */
@media (max-width: 768px) {
    .table-newsList, .table-newsList tbody, .table-newsList tr, .table-newsList td,
    .course-table, .course-table tbody, .course-table tr, .course-table td {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
    }
    .table-newsList thead, .course-table thead { display: none; }
    /* 卡片化後不需要橫向捲動容器 */
    .course-table-wrap, .table-responsive { overflow-x: visible !important; }

    .table-newsList > tbody > tr, .course-table > tbody > tr {
        margin: 0 0 .9rem;
        border: 1px solid #F0C98A;
        border-radius: .7rem;
        overflow: hidden;
        background: #fff;
        box-shadow: 0 3px 10px rgba(128, 82, 47, .06);
    }
    .table-newsList > tbody > tr > td, .course-table > tbody > tr > td {
        display: grid;
        grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr);
        align-items: start;
        gap: 1rem;
        border: 0;
        border-bottom: 1px solid #f2e6d5;
        padding: .55rem .85rem;
        text-align: left !important;
        white-space: normal;
        word-break: break-word;
    }
    .table-newsList > tbody > tr > td:last-child,
    .course-table > tbody > tr > td:last-child { border-bottom: 0; }
    /* 欄位名稱（來自 thead）顯示在左側 */
    .table-newsList > tbody > tr > td::before,
    .course-table > tbody > tr > td::before {
        content: attr(data-label);
        flex: 0 0 38%;
        font-weight: 700;
        color: #8f3c78;
        font-size: .85rem;
    }
    /* 「查無資料」整列置中、不顯示標籤 */
    .table-newsList > tbody > tr > td[colspan],
    .course-table > tbody > tr > td[colspan] {
        display: block;
        text-align: center !important;
    }
    .table-newsList > tbody > tr > td[colspan]::before,
    .course-table > tbody > tr > td[colspan]::before { content: none; }

    /* 查詢卡手機版強化：避免多控件欄位（訓練職類/地點/日期等）撐破版面。
       關鍵：grid 用 minmax(0,1fr)（非 1fr），否則 <select>（white-space:pre）的 min-content
       會把單欄撐到 1400+px。並於各層 min-width:0 讓內容可收縮。 */
    .qsearch,
    .news-search-panel,
    .news-search-grid,
    .organizer-search-grid,
    .organizer-search-panel {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    .organizer-search-field:nth-child(2) { grid-column: auto; }
    .qsearch > .form-group-search,
    .qsearch > .form-group-search.qsearch-wide { grid-column: 1 / -1 !important; }
    .qsearch > .form-group-search,
    .qsearch .form-input,
    .qsearch .form-inline,
    .organizer-search-field,
    .news-search-field--date,
    .news-search-grid > * {
        min-width: 0 !important;
    }
    .qsearch .form-input, .qsearch .form-inline { flex-wrap: wrap; }
    .qsearch .form-group-search .form-control,
    .qsearch .form-group-search select,
    .qsearch .form-group-search input[type="text"],
    .organizer-search-field .form-control,
    .organizer-search-field select,
    .organizer-search-field input[type="text"] {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    /* 日期區間手機改上下堆疊、不超出 */
    .news-date-range, .date-range__controls, .hs-daterange { grid-template-columns: 1fr !important; flex-wrap: wrap; }
    .qsearch .datepicker-outline.input-group,
    .news-date-range .datepicker-outline.input-group,
    .hs-daterange .datepicker-outline.input-group { flex: 1 1 100%; width: 100%; min-width: 0; }
}

/* =====================================================================
   5. 首頁綜合查詢（hero-search）重新美化
   - 覆蓋設計師 .search-panel/.form-row 的窄單欄＋位移版面，改為 2 欄暖色卡
   - 日期元件輸入框＋日曆鈕一體化圓角、暖橘按鈕
   - 送出參數完全沿用 Turbo helper（DropDownListFor/RadioGroupFor/DatePickerTWFor），未更動
   僅作用於 .hero-search，不影響其他查詢頁。
   ===================================================================== */

/* 卡片本體：覆蓋 designer .search-panel 的 grid + 半透明底 */
.hero-search .search-panel.hero-panel {
    display: block;
    background: linear-gradient(180deg, #fffdfb, #fff5ea);
    border: 1px solid #f0d8bf;
    border-radius: 1.4rem;
    box-shadow: 0 14px 34px rgba(128, 82, 47, .14);
    padding: 1.7rem 1.9rem;
    max-width: 100%;
    overflow: visible;
}

/* 頁籤切換：用 class 隱藏（避免 jQuery.show() 蓋掉 grid） */
.hero-search .hs-hidden {
    display: none !important;
}

/* 2 欄格線 */
.hero-search .hs-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem 1.8rem;
    align-items: end;
}

/* 欄位：標題在上、控件在下 */
.hero-search .hs-field {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-width: 0;
    width: auto;
    margin: 0;
    transform: none;
}

.hero-search .hs-field--wide {
    grid-column: 1 / -1;
}

.hero-search .hs-field > label,
.hero-search .hs-field__label {
    font-weight: 700;
    color: #7a4a1e;
    font-size: .98rem;
    text-align: left;
}

/* 統一輸入框 / 下拉外觀（暖色圓角＋橘色 focus 環） */
.hero-search .hs-field .form-control,
.hero-search .hs-duo .form-control,
.hero-search .hs-field select,
.hero-search .hs-field input[type="text"] {
    width: 100%;
    border: 1px solid #e0cbb0;
    border-radius: .7rem;
    padding: .62rem .85rem;
    background: #fff;
    font: inherit;
    color: #40332f;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.hero-search .hs-field .form-control:focus,
.hero-search .hs-duo .form-control:focus,
.hero-search .hs-field select:focus,
.hero-search .hs-field input[type="text"]:focus {
    outline: none;
    border-color: #E8821E;
    box-shadow: 0 0 0 3px rgba(232, 130, 30, .18);
}

/* 縣市 + 行政區 兩下拉並排 */
.hero-search .hs-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
}

/* 青年身份 radio → 橫排膠囊 */
.hero-search .hs-radios, .news-search-panel .hs-radios {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    padding-top: .1rem;
}

.hero-search .hs-radios .form-group, .news-search-panel .hs-radios .form-group {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 0;
}

.hero-search .hs-radios .radio, .news-search-panel .hs-radios .radio {
    margin: 0;
}

.hero-search .hs-radios .radio label, .news-search-panel .hs-radios .radio label {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0;
    padding: .5rem 1.1rem;
    border: 1px solid #e0cbb0;
    border-radius: 2rem;
    background: #fff;
    font-weight: 500;
    color: #5a3a2f;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

.hero-search .hs-radios .radio label:hover, .news-search-panel .hs-radios .radio label:hover {
    background: #fff2e6;
    border-color: #E8821E;
}


.hero-search .hs-radios .radio input, .news-search-panel .hs-radios .radio input {
    accent-color: #aa4b8f;
}

/* ---- 日期區間 ---- */
.hero-search .hs-daterange {
    display: flex;
    align-items: center;
    gap: .7rem;
    flex-wrap: nowrap;
}

.hero-search .hs-daterange .input-group {
    flex: 1 1 0;
}

.hero-search .hs-daterange__sep {
    flex: 0 0 auto;
    color: #a9744a;
    font-weight: 700;
}

/* 日期元件：文字框 + 日曆鈕 一體化圓角、暖橘鈕 */
.hero-search .datepicker-outline.input-group .form-control {
    border: 1px solid #e0cbb0;
    border-right: 0;
    border-radius: .7rem 0 0 .7rem;
    padding: .62rem .85rem;
    background: #fff;
}

.hero-search .datepicker-outline.input-group .form-control:focus {
    border-color: #E8821E;
    box-shadow: 0 0 0 3px rgba(232, 130, 30, .18);
    position: relative;
    z-index: 1;
}

.hero-search .datepicker-outline .open-datepicker {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.9rem;
    padding: .5rem .8rem;
    border: 1px solid #E8821E;
    border-left: 0;
    border-radius: 0 .7rem .7rem 0;
    background: linear-gradient(180deg, #F5A623, #E8821E);
    color: #fff;
}

.hero-search .datepicker-outline .open-datepicker:hover,
.hero-search .datepicker-outline .open-datepicker:focus {
    background: linear-gradient(180deg, #E8821E, #d1731a);
    color: #fff;
}

/* ---- 查詢按鈕 ---- */
.hero-search .hs-actions {
    display: flex;
    justify-content: center;
    margin-top: .5rem;
}

.hero-search .hs-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-width: 16rem;
    padding: .8rem 2.4rem;
    border: 0;
    border-radius: 2rem;
    background: linear-gradient(90deg, #aa4b8f, #c95fa0);
    color: #fff;
    font-size: 1.08rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(170, 75, 143, .28);
    transition: filter .15s ease, transform .05s ease;
}

.hero-search .hs-submit:hover {
    filter: brightness(1.06);
    color: #fff;
}

.hero-search .hs-submit:active {
    transform: translateY(1px);
}

/* ---- 手機：改單欄 ---- */
@media (max-width: 720px) {
    .hero-search .hs-grid {
        grid-template-columns: 1fr;
    }
    .hero-search .hs-field--wide {
        grid-column: auto;
    }
    .hero-search .hs-duo {
        grid-template-columns: 1fr;
    }
    .hero-search .hs-daterange {
        flex-wrap: wrap;
    }
    .hero-search .hs-daterange__sep {
        display: none;
    }
    .hero-search .hs-submit {
        width: 100%;
    }
}

/* =====================================================================
   Phase F — UI 細節調整
   ===================================================================== */

/* --- 查詢條件外框統一白底；標籤文字沿用 Design Baseline 的深咖啡色 --- */
.index-search,
.index-search.qsearch,
.hero-search .search-panel.hero-panel,
.search-panel,
.news-search-panel,
.organizer-search-panel {
    background: #fff !important;
    background-image: none !important;
}
.index-search .form-label-search,
.qsearch .form-group-search > label,
.qsearch .form-label-search,
.qsearch .form-group-search .form-row__label,
.hero-search .hs-field > label,
.hero-search .hs-field__label,
.organizer-search-field > label,
.news-search-field__label,
.search-head__title {
    color: #5e3927 !important;
}

/* 首頁青年職訓查詢：依 Design Baseline 採單列式閱讀順序。 */
.hero-search .search-panel.hero-panel {
    border: 0;
    border-radius: 1.8rem;
    background: rgba(255, 255, 255, .9) !important;
    box-shadow: var(--shadow);
    padding: 1.4rem 1.5rem 1.2rem;
}
.home-youth-search,
.home-search-stack { display: grid; gap: .6rem; }
.hero-search .form-actions {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-inline: auto;
    transform: none;
}
.hero-search .form-actions .btn-primary {
    grid-column: auto;
    width: min(24rem, 100%);
}
.hero-search .search-tabs__tabs {
    flex: 2 1 0;
    min-width: 0;
}
.hero-search .search-tabs__tabs > button,
.hero-search .search-tabs > a {
    flex: 1 1 0;
    min-width: 0;
}
.hero-search .search-tabs > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
}
.hero-search .search-tabs > a:hover .external-link-icon,
.hero-search .search-tabs > a:focus-visible .external-link-icon {
    border-color: #fff;
    color: #fff;
}

/* 首頁最新資訊：三個區塊共用色彩 hover/focus，不使用位移或追加陰影。 */
.latest .news-card {
    border-left: 3px solid transparent;
    transition: background-color .2s ease, border-color .2s ease;
}
.latest .news-card:hover,
.latest .news-card:focus-within {
    border-left-color: #e8821e;
    background: #fff3e8;
}
.latest .news-card:hover time,
.latest .news-card:focus-within time,
.latest .news-card:hover .news-card__title,
.latest .news-card:focus-within .news-card__title { color: #89304f; }
.latest .news-card:hover .news-card__title,
.latest .news-card:focus-within .news-card__title {
    text-decoration: underline;
    text-underline-offset: .2em;
}
.latest .news-card__title:focus-visible,
.side-cards .compact-list a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
}
.side-cards .compact-list { gap: 0; }
.side-cards .compact-list li {
    margin-inline: -1rem;
    padding: .4rem 1rem;
    border-left: 3px solid transparent;
    transition: background-color .2s ease, border-color .2s ease;
}
.side-cards .compact-list li + li { border-top: 1px solid #f0e4da; }
.side-cards .compact-list li:hover,
.side-cards .compact-list li:focus-within {
    border-left-color: #e8821e;
    background: #fff3e8;
}
.side-cards .compact-list li:hover a,
.side-cards .compact-list li:focus-within a,
.side-cards .compact-list li:hover time,
.side-cards .compact-list li:focus-within time { color: #89304f; }
.side-cards .compact-list li:hover a,
.side-cards .compact-list li:focus-within a {
    text-decoration: underline;
    text-underline-offset: .2em;
}
.hero-search .form-row > label,
.hero-search .form-row > .form-row__label { color: #40332f !important; }
.hero-search .form-row input.form-control,
.hero-search .form-row select.form-control {
    border-color: #bbb;
    border-radius: .35rem;
    padding: .55rem .65rem;
    background: #fff;
    color: #40332f;
}
.hero-search .form-row input.form-control:focus,
.hero-search .form-row select.form-control:focus {
    outline: 3px solid rgba(170, 75, 143, .2);
    outline-offset: 1px;
    border-color: #aa4b8f;
    box-shadow: none;
}
.home-youth-options,
.home-youth-options .form-group { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1.1rem; margin: 0; }
.home-youth-options .radio { margin: 0; }
.home-youth-options .radio label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; font-weight: 400; text-align: left; }
.home-youth-options input[type="radio"] { width: auto; margin: 0; accent-color: #aa4b8f; }
.home-search-date-controls .input-group { min-width: 0; width: 100%; }
.home-search-date-controls .hint { grid-column: 1 / -1; }
/* 日期列需高於後續輸入列，否則 .form-row 的 transform 堆疊環境會蓋住日曆。 */
.hero-search .form-row.date-range { position: relative; z-index: 20; }
.hero-search .home-search-date-controls { position: relative; z-index: 21; overflow: visible; }
.hero-search .bootstrap-datetimepicker-widget.dropdown-menu { z-index: 10050 !important; }
.hero-search .home-search-date-controls .datepicker-outline.input-group .form-control {
    border-color: #bbb;
    border-radius: .35rem 0 0 .35rem;
    padding: .55rem .65rem;
}
.hero-search .home-search-date-controls .datepicker-outline.input-group .form-control:focus {
    border-color: #aa4b8f;
    box-shadow: 0 0 0 3px rgba(170, 75, 143, .2);
}
.hero-search .home-search-date-controls .datepicker-outline .open-datepicker {
    min-width: 2.75rem;
    padding: .5rem .7rem;
    border-color: #aa4b8f;
    border-radius: 0 .35rem .35rem 0;
    background: #aa4b8f;
    color: #fff;
}
.hero-search .home-search-date-controls .datepicker-outline .open-datepicker:hover,
.hero-search .home-search-date-controls .datepicker-outline .open-datepicker:focus {
    background: #8f3c78;
    color: #fff;
}

@media (max-width: 720px) {
    .hero-search .search-panel.hero-panel { padding: 1.1rem 1rem; }
    .home-search-date-controls { grid-template-columns: 1fr; }
    .home-search-date-controls > span[aria-hidden="true"] { display: none; }
}

/* 企業預聘青年計畫－計畫簡介與聯絡窗口。 */
.enterprise-prehire-program-page .enterprise-prehire-contact-table { min-width: 58rem; }
.enterprise-prehire-program-page .detail-list dd p { margin: 0; }
.enterprise-prehire-program-page .detail-list dd p + p { margin-top: .4rem; }

@media (max-width: 767.98px) {
    .plan-page-header .plan-detail-header--single-nav { grid-template-columns: 1fr; }
    .plan-page-header .plan-detail-header--single-nav .plan-local-nav { justify-self: stretch; max-width: none; }
    .enterprise-prehire-program-page .enterprise-prehire-contact-table { min-width: 0; }
}

/* YR013 雙週誌列表：保留 demo1 狀態文字，補上辨識色與評語並存版面。 */
.journal-table {
    width: 100%;
    min-width: 0;
}
.journal-table th,
.journal-table td {
    padding: .55rem .7rem;
}
.journal-table th:nth-child(6),
.journal-table td:nth-child(6) {
    min-width: 11rem;
    text-align: left;
}
.journal-table .status-badge,
.journal-table .comment-status {
    cursor: default;
    box-shadow: none;
}
.journal-table th:nth-child(7),
.journal-table th:nth-child(8),
.journal-table td:nth-child(7),
.journal-table td:nth-child(8) {
    text-align: center;
}
.journal-table .status-badge--pending {
    border-color: #aaa;
    background: #fff;
    color: #666;
}
.journal-table .status-badge--review {
    border-color: #c88719;
    background: #fff4d6;
    color: #76500a;
}
.journal-table .status-badge--returned {
    border-color: #bd4c43;
    background: #fff0ee;
    color: #8c2f28;
}
.journal-table .journal-review-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    min-width: 10rem;
}
.journal-table .btn-table--refill {
    border-color: #bd4c43;
    background: #bd4c43;
    color: #fff;
}
.journal-table .btn-table--refill:hover,
.journal-table .btn-table--refill:focus-visible {
    background: #8c2f28;
    color: #fff;
}

/* Design Baseline：外部連結以 ↗ 圖示明示，完整提示保留給螢幕閱讀器。 */
.external-link-label {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere
}

.external-link-icon {
    display: inline-block;
    margin-left: .25rem;
    font-size: .9em;
    font-weight: 700;
    line-height: 1;
    vertical-align: .08em
}
.search-head__title span[lang="en"] { color: #555 !important; }

/* --- 項目3：回首頁/回上頁/回頁首 統一「外框膠囊」（紫字紫框白底） --- */
.goup a, .page-back a, .page-back button,
a.btn-search[title="回首頁"], a.btn.btn-search[title="回首頁"] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #fff !important;
    color: #8f3c78 !important;
    border: 1px solid #e2b98d !important;
    border-radius: 1.2rem !important;
    padding: .4rem 1.1rem !important;
    font-size: 1rem !important;
    font-weight: 600;
    text-decoration: none;
    box-shadow: none !important;
    line-height: 1.4;
}
.goup a:hover, .page-back a:hover, .page-back button:hover,
a.btn-search[title="回首頁"]:hover, a.btn.btn-search[title="回首頁"]:hover {
    background: #aa4b8f !important;
    color: #fff !important;
    border-color: #aa4b8f !important;
}

/* --- 清單頁標題對齊 Design Baseline 靠左，計畫名過長換行 --- */
.news-search-header { justify-content: flex-start; }
.course-table td:nth-child(3),
.course-table td:nth-child(2) { white-space: normal; word-break: break-word; }

/* --- 項目7：長標題（企業預聘計畫等）plan-detail-header 自動換行 --- */
.plan-detail-header .page-title { white-space: normal !important; }

/* --- 項目6：DS003 雙軌意願申請表 值欄一致置中（蓋過 inline align/style） --- */
.table-content--center td.whitecol,
.table-content--center td.whitecol span {
    text-align: center !important;
}

/* === 綜合查詢(qsearch) 版面重整：加大間距、標題在上、控件在下，不再擠在一起 === */
.index-search.qsearch {
    padding: 1.5rem 1.85rem 1.35rem !important;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem 2rem;
    align-items: start;
    border: 1px solid #f0e2cf;
    border-radius: 1rem;
    box-shadow: 0 2px 10px rgba(138, 92, 60, .06);
}
.index-search.qsearch > .search-head { grid-column: 1 / -1; margin-bottom: .2rem; }
.index-search.qsearch .form-group-search {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin: 0;
    min-width: 0;
    transform: none;
}
.index-search.qsearch .form-group-search > label,
.index-search.qsearch .form-label-search {
    font-weight: 700;
    margin: 0;
    padding: 0;
    width: auto;
    text-align: left;
    white-space: normal;
}
.index-search.qsearch .form-input { width: 100%; margin: 0; }
.index-search.qsearch .form-group-search .form-control,
.index-search.qsearch .form-group-search select,
.index-search.qsearch .form-group-search input[type="text"] {
    width: 100%;
    border: 1px solid #e0cbb0;
    border-radius: .6rem;
    padding: .58rem .8rem;
    background: #fff;
    font: inherit;
}
.index-search.qsearch .form-group-search .form-control:focus,
.index-search.qsearch .form-group-search select:focus,
.index-search.qsearch .form-group-search input[type="text"]:focus {
    outline: none;
    border-color: #E8821E;
    box-shadow: 0 0 0 3px rgba(232, 130, 30, .18);
}
.index-search.qsearch .form-group-search.qsearch-wide { grid-column: 1 / -1; }
.index-search.qsearch .text-center.col-sm-12 {
    grid-column: 1 / -1;
    margin-top: .4rem;
    text-align: center;
}

/* 查詢送出鈕：置中、文字不被壓底（避開父層 flex/固定高度） */
.index-search.qsearch .qsearch-actions {
    grid-column: 1 / -1;
    display: block;
    text-align: center;
    margin-top: .8rem;
}
.index-search.qsearch .qsearch-actions .btn-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.4 !important;
    padding: .6rem 2.6rem !important;
    font-size: 1.05rem;
}

/* 課程清單：白灰相間斑馬紋 */
/* ===================================================================
   網站導覽 SiteMap：原為多層巢狀 table + 背景圖，改為 div/grid 以支援 RWD，
   並保留無障礙說明（快速鍵、鍵盤操作）。
   =================================================================== */
.sitemap-a11y {
    margin: 1rem 0 1.6rem;
    padding: 1.1rem 1.3rem;
    /* 與宣導專區一致：白底＋細邊框，不用橘色色塊把整區框起來 */
    background: #fff;
    border: 1px solid #ead8c8;
    border-radius: .9rem;
}
.sitemap-a11y__title {
    margin: 0 0 .6rem;
    color: #8f3c78;
    font-size: 1.15rem;
    font-weight: 700;
}
.sitemap-a11y__subtitle {
    margin: 1rem 0 .4rem;
    padding-left: .6rem;
    border-left: 4px solid #e8821e;
    color: #7a4a1e;
    font-size: 1rem;
    font-weight: 700;
}
.sitemap-a11y__lead,
.sitemap-a11y__note { margin: .4rem 0; line-height: 1.9; color: #40332f; }
.sitemap-a11y__note { color: #6b5a50; font-size: .95rem; }
.sitemap-a11y__list { margin: .3rem 0 0; padding-left: 1.3rem; line-height: 1.95; color: #40332f; }
.sitemap-a11y__list li { margin: .2rem 0; }

/* 快速鍵對照：桌機兩欄、手機自動堆疊 */
.sitemap-keys { margin: .3rem 0 0; }
.sitemap-keys__row {
    display: grid;
    grid-template-columns: 9.5rem 1fr;
    gap: .3rem .9rem;
    align-items: baseline;
    padding: .35rem 0;
    border-bottom: 1px dashed #f0d6b4;
}
.sitemap-keys__row:last-child { border-bottom: 0; }
.sitemap-keys dt { font-weight: 700; color: #7a4a1e; }
.sitemap-keys dd { margin: 0; color: #40332f; }

.sitemap-a11y kbd {
    display: inline-block;
    min-width: 1.6rem;
    padding: .1rem .45rem;
    background: #fff;
    border: 1px solid #d9b98e;
    border-bottom-width: 2px;
    border-radius: .35rem;
    box-shadow: 0 1px 0 rgba(122, 74, 30, .12);
    color: #7a4a1e;
    font-family: inherit;
    font-size: .9em;
    font-weight: 700;
    text-align: center;
}

/* 網站地圖卡片：自動填滿欄數，窄螢幕自動變單欄 */
.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 1.1rem;
    margin: 0 0 1rem;
}
.sitemap-card {
    display: flex;
    flex-direction: column;
    /* 蓋掉 style.css 原本「單行大按鈕」用的置中設定，讓標題與清單一律靠上、靠左 */
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
    min-height: 0;
    padding: 1rem 1.1rem 1.1rem;
    background: #fff;
    border: 1px solid #ead8c8;
    border-radius: .9rem;
    box-shadow: 0 3px 10px rgba(122, 74, 30, .07);
}
.sitemap-card__title {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0 0 .7rem;
    padding-bottom: .6rem;
    border-bottom: 2px solid #f4e0c4;
    color: #8f3c78;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.45;
}
.sitemap-card__no {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    background: #8f3c78;
    border-radius: 50%;
    color: #fff;
    font-size: .88rem;
}
.sitemap-card__list {
    margin: 0;
    padding-left: 1.4rem;
    list-style: decimal;
    line-height: 1.85;
}
.sitemap-card__list li { margin: .18rem 0; color: #6b5a50; }
.sitemap-card__list a {
    color: #40332f;
    text-decoration: none;
    border-bottom: 1px solid transparent;
}
.sitemap-card__list a:hover,
.sitemap-card__list a:focus-visible {
    color: #8f3c78;
    border-bottom-color: #e8821e;
}
.sitemap-ext { color: #8a7a70; font-size: .82em; }

@media (max-width: 640px) {
    .sitemap-grid { grid-template-columns: 1fr; }
    .sitemap-keys__row { grid-template-columns: 1fr; gap: .1rem; }
}

/* 分頁列仍使用舊版 float 時，表格容器需清除浮動，避免與分頁並排。 */
.course-table-wrap { clear: both; }
@media (max-width: 768px) {
    .index-search.qsearch { grid-template-columns: 1fr; padding: 1.1rem 1.1rem !important; }
}

/* === 產業新尖兵 內容文章(訊息發佈/下載專區明細) 版式 === */
.yip-article {
    background: #fff;
    border: 1px solid #f0e2cf;
    border-radius: 1rem;
    box-shadow: 0 2px 12px rgba(138, 92, 60, .07);
    padding: 1.8rem 2rem 1.6rem;
    max-width: 960px;
    margin: 0 auto;
}
.yip-article__head { border-bottom: 2px solid #f0e2cf; padding-bottom: 1rem; margin-bottom: 1.4rem; }
.yip-article__title {
    color: #b12d2b;
    font-size: 1.55rem;
    line-height: 1.4;
    margin: 0 0 .6rem;
    white-space: normal;
}
.yip-article__meta { color: #8f6b4e; font-size: .95rem; }
.yip-article__meta i { color: #aa4b8f; margin-right: .2rem; }
.yip-article__body { color: #3a3330; font-size: 1.02rem; line-height: 1.9; }
.yip-article__body p { margin: 0 0 1rem; }
.yip-article__body img {
    max-width: 100%;
    height: auto !important;
    border-radius: .5rem;
    box-shadow: 0 1px 6px rgba(0, 0, 0, .1);
    margin: .6rem 0;
    display: block;
}
.yip-article__body a { color: #aa4b8f; text-decoration: underline; word-break: break-all; }
.yip-article__body a:hover { color: #8f3c78; }
.yip-article__body table { max-width: 100%; }
.yip-article__body ul, .yip-article__body ol { padding-left: 1.6rem; margin: 0 0 1rem; }
.yip-article__foot { border-top: 1px solid #f0e2cf; margin-top: 1.6rem; padding-top: 1.2rem; text-align: center; }

/* === 測試環境 demo 學員登入列（會員登入與站內搜尋之間） === */
.yip-demo-bar { background: #fff6e9; border-top: 1px solid #f4e2c8; border-bottom: 1px solid #f0d9b8; }
/* 左右不留內距：.container 本身已是 min(1200px, 100%-48px)，加了 24px 會讓測試環境列
   比品牌列再往內縮，兩種版型看起來就不一樣（功能頁另有規則蓋成 0，設計頁沒有）。 */
.yip-demo-bar .container { display: flex; align-items: center; gap: .7rem; padding: .4rem 0; flex-wrap: wrap; font-size: .9rem; color: #8a5a3c; }
.yip-demo-bar__tag { background: #E8821E; color: #fff; font-weight: 700; border-radius: .3rem; padding: .12rem .55rem; font-size: .82rem; letter-spacing: .05em; }
.yip-demo-bar__text { flex: 1 1 auto; min-width: 0; }
.yip-demo-bar__btn { background: #8f3c78; color: #fff !important; border-radius: 1rem; padding: .25rem .95rem; text-decoration: none; font-weight: 600; white-space: nowrap; }
.yip-demo-bar__btn:hover { background: #aa4b8f; color: #fff !important; }

/* === 課程/單位 滿意度評分（❤ 疊層） === */
.yip-rating { position: relative; display: inline-block; font-size: 1rem; line-height: 1; vertical-align: middle; letter-spacing: 1px; margin-left: .4rem; }
.yip-rating__empty { color: #e2d5c8; }
.yip-rating__full { position: absolute; left: 0; top: 0; color: #ff5a7a; overflow: hidden; white-space: nowrap; letter-spacing: 1px; }
@media print {
    .yip-demo-bar, .site-header, .site-footer, .footer-plan-menu, .menu-toggle, .btn, .goup { display: none !important; }
    .yip-detail-table { font-size: 0.75rem; } /* 12px；相對單位以符合無障礙 CS2140401C */
}


/* 表單按鈕列：問卷等頁面的「儲存」原本吃 btn-block 變成整列滿版，改為置中的一般寬度 */
.form-actions {
    margin: 1.2rem 0 .5rem;
    padding: 10px 0;
    text-align: center;
}
.form-actions .btn { min-width: 8rem; }

/* 表單必填／選填標示：原本只靠 redcol/bluecol 的顏色差異暗示，無圖例也無標記，
   使用者無法分辨哪些一定要填。 */
.req-mark {
    margin-right: .2rem;
    color: #d0021b;
    font-weight: 700;
}
.opt-mark {
    margin-left: .3rem;
    color: #7a6a60;
    font-size: .85em;
    font-weight: 400;
}
.form-legend {
    margin: 0 0 .6rem;
    color: #5a4a42;
    font-size: .92rem;
}

/* ===================================================================
   功能頁查詢區的三個版面問題（TrainingHistory / Search 等 .index-search 共通）
   功能頁會載入舊的 style/base.css，它對 .btn-search 設了固定 height:30px 與
   font-size:.9em !important，把新版的按鈕樣式壓垮；日期元件的日曆鈕也會
   溢出輸入框外；清單上方的分頁列則是 float:right 只佔內容寬。
   以下統一對齊 eNews/Search 的呈現。
   =================================================================== */

/* (1) 日期元件：input-group 原為 display:table，輸入框吃滿 100% 導致日曆鈕被擠到框外。
       改為 flex，輸入框自適應、日曆鈕貼齊右側並等高。 */
.index-search .date.input-group,
.form-group-search .date.input-group {
    display: flex !important;
    align-items: stretch;
}
.index-search .date.input-group > .form-control,
.form-group-search .date.input-group > .form-control {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
}
.index-search .date.input-group > .input-group-btn,
.form-group-search .date.input-group > .input-group-btn {
    flex: 0 0 auto;
    display: flex;
    width: auto !important;
}
.index-search .date.input-group .open-datepicker,
.form-group-search .date.input-group .open-datepicker {
    height: auto !important;
    align-self: stretch;
}

/* (2) 查詢送出鈕：base.css 的 height:30px 讓文字被擠出框外（看起來像置底），
       字級也被壓成 13.5px。比照 eNews/Search 的查詢鈕（約 160x46、16px）。 */
.index-search > .text-center .btn,
.index-search > .text-center .btn-search,
.index-search .qsearch-actions .btn,
.index-search .qsearch-actions .btn-search {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.4 !important;
    padding: .6rem 2rem !important;
    font-size: 1rem !important;
    font-weight: 700;
}

/* (3) 清單上方分頁列：原為 float:right 只佔內容寬、字級 12px，
       改為整列右對齊，與 eNews/Search 一致。 */
.container > .col-sm-12 > .search-pager,
.container > .col-sm-12 > div.search-pager[align="right"] {
    float: none !important;
    width: 100%;
    font-size: 1rem;
}
.container > .col-sm-12 > .search-pager .page-status,
.container > .col-sm-12 > .search-pager span {
    font-size: 1rem;
}

/* ===================================================================
   清單頁（最新消息／宣導專區／影音專區／參訓歷史查詢）
   比照設計稿 download-list.html：查詢條件摘要列、表格欄寬、表格下方置中分頁。
   =================================================================== */

/* --- 查詢條件摘要列（_DesignLayout 已由 style.css 提供，這裡補 _MainLayout 用） --- */
.news-results__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 .5rem;
    padding: .75rem 1rem;
    border-left: 4px solid #b9472c;
    background: #fff3e8;
    color: #633f30;
}
.news-results__clear {
    flex: 0 0 auto;
    padding: .25rem .65rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: transparent;
    color: #8f2f35 !important;
    font: inherit;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}
.news-results__clear:hover,
.news-results__clear:focus-visible {
    background: #8f2f35;
    color: #fff !important;
}
@media (max-width: 640px) {
    .news-results__summary { flex-direction: column; align-items: flex-start; }
}

/* --- 表格欄寬：原本標題被擠成兩行、計畫別卻佔掉大半版面 --- */
.news-results-table { table-layout: fixed; }
.news-results-table col.col-seq { width: 6%; }
.news-results-table col.col-title { width: 44%; }
.news-results-table col.col-plan { width: 26%; }
.news-results-table col.col-date { width: 14%; }
.news-results-table col.col-count { width: 10%; }
.news-results-table th, .news-results-table td { word-break: break-word; }
.news-results-table th:nth-child(2),
.news-results-table td:nth-child(2) { text-align: left; }
@media (max-width: 768px) {
    /* 手機改卡片式堆疊時不需要固定欄寬 */
    .news-results-table { table-layout: auto; }
}

/* --- 分頁列：移到表格下方、置中，按鈕改成設計稿的膠囊 --- */
.result-pagination {
    /* 同時掛了 .search-pager（原本靠右），這裡要蓋回設計稿的置中 */
    justify-content: center !important;
    margin: .9rem 0;
}
.result-pagination .pageLink {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    font-size: 1rem;
}
.result-pagination .pageLink button,
.result-pagination .pageLink .pageStatus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    height: auto !important;
    margin: 0 !important;
    padding: .35rem .9rem !important;
    border: 1px solid #c9b6a8;
    border-radius: 8px;
    background: #fff !important;
    color: #633f30;
    font-size: 1rem !important;
    line-height: 1.4;
}
.result-pagination .pageLink button:enabled:hover {
    background: #fff0e8 !important;
    color: #9b3f24;
    box-shadow: inset 0 0 0 1px #d65b3a;
    border-color: #d65b3a;
}
.result-pagination .pageLink button[disabled] {
    border-color: #ddd5cf;
    background: #f4f4f4 !important;
    color: #8a817c;
    cursor: not-allowed;
    opacity: .75;
}
/* 頁碼／筆數合併為一顆深色狀態膠囊（設計稿的 .result-pagination__status） */
.result-pagination .pageLink .pageStatus {
    border-color: #7a2b3a;
    background: #7a2b3a !important;
    color: #fff;
}
.result-pagination .pageLink .pageStatus .pageInfo,
.result-pagination .pageLink .pageStatus .recordsInfo {
    color: #fff !important;
}

/* 參訓歷史查詢的欄位組成與消息類不同，另給一組欄寬 */
.history-results-table col.col-year { width: 8%; }
.history-results-table col.col-dis { width: 16%; }
.history-results-table col.col-org { width: 34%; }
.history-results-table col.col-plan2 { width: 26%; }
.history-results-table col.col-period { width: 16%; }
.history-results-table th:nth-child(3),
.history-results-table td:nth-child(3),
.history-results-table th:nth-child(4),
.history-results-table td:nth-child(4) { text-align: left; }
.history-results-table th:nth-child(2),
.history-results-table td:nth-child(2) { text-align: center; }

/* 查詢條件摘要列：「查詢條件」單獨一行當標題，條件內容排在下一行 */
.news-results__summary-body {
    min-width: 0;
    flex: 1 1 auto;
}
.news-results__summary-label {
    display: block;
    margin-bottom: .25rem;
    font-weight: 700;
}
.news-results__summary-items {
    display: block;
    line-height: 1.7;
    word-break: break-word;
}
/* 標題與內容分兩行後，清除鈕改對齊頂端才不會浮在中間 */
.news-results__summary { align-items: flex-start; }
.news-results__clear { margin-top: .15rem; }

/* ===================================================================
   綜合查詢：欄位比宣導專區多，沿用同一組面板樣式但改 3 欄網格
   =================================================================== */
.search-panel.news-search-panel--grid3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
}
.news-search-panel--grid3 .field-span2 { grid-column: span 2; }
.news-search-panel--grid3 .organizer-search-actions {
    grid-column: 1 / -1;
    justify-self: center;
}
/* 縣市／鄉鎮兩個下拉並排 */
.news-city-range {
    display: flex;
    gap: .5rem;
}
.news-city-range > select { flex: 1 1 0; min-width: 0; }
/* 青年身份的單選群組與其他欄位等高對齊 */
.news-search-panel--grid3 .radioset {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem 1rem;
    min-height: 2.8rem;
}
@media (max-width: 900px) {
    .search-panel.news-search-panel--grid3 { grid-template-columns: 1fr; }
    .news-search-panel--grid3 .field-span2 { grid-column: auto; }
}

/* 綜合查詢結果表：第 6、7 欄（單位／課程）靠左，其餘置中 */
.search-results-table th,
.search-results-table td { text-align: center; }
.search-results-table th:nth-child(6),
.search-results-table td:nth-child(6),
.search-results-table th:nth-child(7),
.search-results-table td:nth-child(7) { text-align: left; }

/* 日期區間為連續字串；空間不足時允許斷行，避免溢出覆蓋相鄰的縣市欄。 */
.search-results-table th:nth-child(4),
.search-results-table td:nth-child(4) {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* 綜合查詢的單選膠囊：欄位較窄，文字不要被折成直排；高度與下拉選單接近 */
.news-search-panel .hs-radios .radio { flex: 0 0 auto; }
.news-search-panel .hs-radios .radio label {
    padding: .45rem .9rem;
    white-space: nowrap;
}
.news-search-panel--grid3 .radioset { min-height: 0; }

/* ===================================================================
   提示訊息對話框（jquery-confirm v2：.jconfirm-box > .title/.content/.buttons）
   套件預設的 .btn-info 在白色主題下是淺灰底白字，「確定」幾乎看不到。
   這裡統一成全站的紫色實心按鈕，標題與內容也改為暖色系。
   =================================================================== */
.jconfirm .jconfirm-box {
    max-width: 540px;
    margin: 0 auto;
    padding: 1.4rem 1.5rem 1.1rem !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 44px rgba(60, 30, 20, .28) !important;
}
.jconfirm .jconfirm-box > .title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .9rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid #ead8c8;
    color: #89304f;
    font-size: 1.2rem;
    font-weight: 700;
}
.jconfirm .blockMessageTitle,
.jconfirm .blockAlertTitle { color: #89304f; }
/* 「(按下Esc關閉本視窗)」原為紅色 12pt，降低視覺重量以免搶走標題 */
.jconfirm .blockMessageTitle span,
.jconfirm .blockAlertTitle span {
    color: #8a7a70 !important;
    font-size: .85rem !important;
    font-weight: 400;
}
.jconfirm .jconfirm-box > .content {
    color: #40332f;
    font-size: 1.02rem;
    line-height: 1.8;
}
.jconfirm .blockMessage,
.jconfirm .blockAlertMessage { padding: .2rem 0 .4rem; }

/* 表單檢核訊息對話框。 */
.jconfirm .jconfirm-box.form-validation-dialog {
    max-height: calc(100vh - 4rem);
    padding: 0 0 1.1rem !important;
    overflow: hidden;
}
.jconfirm .jconfirm-box.form-validation-dialog > .title {
    align-items: center;
    margin: 0;
    padding: .8rem 1.25rem;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: linear-gradient(90deg, #8f294d, #a94566);
    color: #fff;
}
.jconfirm .form-validation-dialog .blockAlertTitle { color: #fff; }
.jconfirm .form-validation-dialog .blockAlertTitle span { color: rgba(255, 255, 255, .82) !important; }
.jconfirm .jconfirm-box.form-validation-dialog > .content {
    max-height: min(32rem, 65vh);
    padding: 1rem 1.5rem .25rem;
    overflow-y: auto;
    overflow-wrap: anywhere;
}
.jconfirm .form-validation-dialog .blockAlertMessage ul { margin: 0; padding-left: 1.5rem; }
.jconfirm .form-validation-dialog .blockAlertMessage li + li { margin-top: .45rem; }
.jconfirm .jconfirm-box.form-validation-dialog > .buttons {
    margin: 0 1.5rem;
    padding-top: .8rem;
    border-top: 1px solid #ead8c8;
}
@media (max-width: 767px) {
    .jconfirm .jconfirm-box.form-validation-dialog { max-height: calc(100dvh - 2rem); }
    .jconfirm .jconfirm-box.form-validation-dialog > .title { padding: .7rem 1rem; }
    .jconfirm .jconfirm-box.form-validation-dialog > .content {
        max-height: 55dvh;
        padding: .85rem 1rem .2rem;
    }
    .jconfirm .jconfirm-box.form-validation-dialog > .buttons { margin: 0 1rem; }
}

/* 按鈕列 */
.jconfirm .jconfirm-box > .buttons {
    padding-top: 1rem;
    text-align: right;
}
.jconfirm .jconfirm-box > .buttons button,
.jconfirm .jconfirm-box > .buttons button.btn,
.jconfirm .jconfirm-box > .buttons button.btn-info {
    min-width: 7rem;
    height: auto !important;
    margin-left: .5rem !important;
    padding: .55rem 1.8rem !important;
    border: 0 !important;
    border-radius: 2rem !important;
    background: linear-gradient(90deg, #8f294d, #a9459a) !important;
    background-image: linear-gradient(90deg, #8f294d, #a9459a) !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-shadow: none !important;
    box-shadow: 0 3px 10px rgba(143, 41, 77, .28) !important;
    opacity: 1 !important;
}
.jconfirm .jconfirm-box > .buttons button:hover {
    background-image: linear-gradient(90deg, #7a2340, #953b88) !important;
    color: #fff !important;
}
.jconfirm .jconfirm-box > .buttons button:focus-visible {
    outline: 3px solid #e8821e;
    outline-offset: 2px;
}
/* 次要按鈕（例如「取消」）：白底外框，與確定明顯區隔 */
.jconfirm .jconfirm-box > .buttons button.btn-default,
.jconfirm .jconfirm-box > .buttons button.btn-cancel {
    background: #fff !important;
    background-image: none !important;
    color: #8f3c78 !important;
    border: 1px solid #e2b98d !important;
    box-shadow: none !important;
}
.jconfirm .jconfirm-box > .closeIcon { color: #8a7a70; }

/* 已改用統一計畫標頭的頁面：查詢面板保留版面，但外框改成與其他計畫一致的淺色，
   不再是原本那圈明顯的橘框（design-chrome 的 .index-search 用了 !important，故此處也要）。 */
.index-search.plan-page-panel {
    background: #fff !important;
    border: 1px solid #ead8c8 !important;
    box-shadow: 0 4px 14px rgba(128, 82, 47, .06) !important;
}

/* 沒有查詢條件、只是承載表單內容的區塊（如意願表申請），
   外框反而像是把整頁框起來，故拿掉邊框與陰影，只留白底 */
.index-search.plan-page-panel--plain {
    border: 0 !important;
    box-shadow: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* FAQ 空狀態：該計畫尚未建立任何常見問題 */
.faq-empty {
    margin: 1.2rem 0 0;
    padding: 2rem 1rem;
    border: 1px dashed #e0d9d4;
    border-radius: 12px;
    background: #fbf8f5;
    color: #6b5a50;
    font-size: 1.02rem;
    text-align: center;
}

/* 學員雙週誌明細：指導內容與學習心得等寬。
   學習心得是 textarea(cols=70)，會依字元數把欄位撐開，指導內容（純文字）就被擠成窄長條。 */
.table-content--wr { table-layout: fixed; width: 100%; }
.table-content--wr th:nth-child(1), .table-content--wr td:nth-child(1) { width: 6%; }
.table-content--wr th:nth-child(2), .table-content--wr td:nth-child(2) { width: 14%; }
.table-content--wr th:nth-child(3), .table-content--wr td:nth-child(3) { width: 33%; text-align: left; }
.table-content--wr th:nth-child(4), .table-content--wr td:nth-child(4) { width: 33%; }
.table-content--wr th:nth-child(5), .table-content--wr td:nth-child(5) { width: 14%; }
.table-content--wr td { vertical-align: top; word-break: break-word; }
/* textarea 改為填滿欄位，不再由 cols 決定寬度 */
.table-content--wr textarea { width: 100%; max-width: 100%; box-sizing: border-box; resize: vertical; }
@media (max-width: 768px) {
    /* 手機改卡片式堆疊，固定欄寬要放掉 */
    .table-content--wr { table-layout: auto; }
    .table-content--wr th, .table-content--wr td { width: auto; }
}


/* ── 明細頁的文章版型（news-article）────────────────────────────────
   原本只定義在設計師 style.css，僅 _DesignLayout 頁面（宣導專區明細）吃得到。
   活動花絮明細走 _MainLayout（要保留計畫標頭），這裡把同一套樣式補上，
   兩邊的明細頁才會長得一模一樣。 */
.news-article {
    width: min(100%, 56.25rem);
    margin-inline: auto;
}

.news-article__header {
    padding: .5rem 0 1.25rem;
}

.news-article__title {
    margin: 0;
    color: #89304f;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    line-height: 1.4;
}

.news-article__updated {
    margin: .6rem 0 0;
    color: var(--muted, #746961);
    font-size: .95rem;
    text-align: right;
}

.news-article__meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 1rem 0 0;
    border: 1px solid #e0d9d4;
    border-radius: 12px;
    background: #f7f7f7;
    overflow: hidden;
}

/* 活動花絮只有 3 個欄位（沒有瀏覽人數），不留空格 */
.news-article__meta--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-article__meta div {
    min-width: 0;
    padding: .7rem 1rem;
    border-left: 1px solid #e0d9d4;
}

.news-article__meta div:first-child {
    border-left: 0;
}

.news-article__meta dt {
    margin-bottom: .2rem;
    color: #7d2c18;
    font-size: .9rem;
    font-weight: 700;
}

.news-article__meta dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.news-article__section {
    margin-top: 2rem;
}

.news-article__section-title {
    margin: 0 0 1rem;
    padding-left: .75rem;
    border-left: 4px solid #d65b3a;
    color: #7d2c18;
    font-size: 1.3rem;
    line-height: 1.4;
}

.news-article__body {
    min-height: 10rem;
    padding: .25rem 0;
    font-size: 1.05rem;
    line-height: 1.9;
}

.news-article__body p {
    margin: 0 0 1rem;
}

/* 內容可能夾帶固定寬度的表格或圖片，限制住避免撐破版面 */
.news-article__body img,
.news-article__body table {
    max-width: 100%;
    height: auto;
}

.news-article__body table {
    display: block;
    overflow-x: auto;
}

.news-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 11rem;
    min-height: 2.75rem;
    padding: .5rem 1.25rem;
    border: 1px solid #89304f;
    border-radius: 999px;
    background: #fff;
    color: #89304f;
    font-weight: 700;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.news-back-link i {
    margin-right: .4rem;
}

.news-back-link:hover,
.news-back-link:focus {
    background: #89304f;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(96, 34, 62, .24);
}

.unit-back-actions {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}

@media (max-width: 48rem) {
    .news-article__meta,
    .news-article__meta--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-article__meta div,
    .news-article__meta div:first-child {
        border-left: 1px solid #e0d9d4;
    }

    .news-article__meta div:nth-child(odd) {
        border-left: 0;
    }

    .news-article__meta div:nth-child(n + 3) {
        border-top: 1px solid #e0d9d4;
    }
}


/* ── 修正輸入欄位文字被上下切掉 ────────────────────────────────
   Bootstrap 的 .form-control 寫死 height:34px；本站為了配合暖色版型把
   上下內距加大到 .58~.62rem（約 9.3px），加上 1px 框線後，box-sizing:border-box
   讓內容區只剩約 13.4px，卻要放 13.5px 的字 —— 中文字（尤其是有下半部筆畫的
   「類」「點」「選」）就會被裁掉。
   改為高度由內容撐開，並給一個最小高度維持原本的視覺尺寸。 */
.form-control,
select.form-control,
input.form-control,
.form-group-search select,
.form-group-search input[type="text"],
.organizer-search-field select,
.organizer-search-field input[type="text"],
.hs-field .form-control,
.hs-duo .form-control {
    height: auto;
    min-height: 2.5rem;
    line-height: 1.5;
}

textarea.form-control {
    height: auto;
    min-height: 4rem;
}

/* 日期欄位與日曆鈕同列，按鈕要跟著加高才會對齊 */
.input-group.date .input-group-btn > .btn,
.datepicker-outline.input-group .input-group-btn > .btn {
    min-height: 2.5rem;
}


/* ── 常見問題：類別頁籤 + 問答手風琴 ──────────────────────────────
   版面比照衛福部 FAQ：上方是類別頁籤，下方是該類別的問答手風琴，
   Q 為標頭、A 為展開後的內容，進入類別時預設展開第一筆。 */
.faq-board { margin-top: .4rem; }

.faq-tabs.news-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 0 0 1.2rem;
}

.faq-tabs .faq-tab {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;          /* 類別名稱長短不一，不要硬撐成同寬 */
    padding: .5rem 1.05rem;
}

/* 該類別的問答則數 */
.faq-tab__cnt {
    display: inline-grid;
    min-width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    padding: 0 .35rem;
    border-radius: 999px;
    background: #f3e6d8;
    color: #8a4a2c;
    font-size: .8rem;
    font-weight: 700;
}

.faq-tab.is-active .faq-tab__cnt,
.faq-tab:hover .faq-tab__cnt,
.faq-tab:focus-visible .faq-tab__cnt {
    background: rgba(255, 255, 255, .28);
    color: #fff;
}

/* 未指定計畫時的計畫分組小標：佔滿整列，讓每個計畫的類別各自起一行 */
.faq-tabgroup__label {
    flex: 0 0 100%;
    margin: .5rem 0 -.1rem;
    color: #8f3c78;
    font-size: .92rem;
    font-weight: 700;
}

.faq-tabgroup__label:first-child { margin-top: 0; }

.faq-tabpanel { min-height: 6rem; }

/* FAQ 回答區字級明確對齊 Design Baseline，避免受舊 Layout 繼承值影響。 */
.faq-item__answer-prefix,
.faq-item__answer-text { font-size: 1rem; }

@media (max-width: 48rem) {
    .faq-tabs .faq-tab { padding: .45rem .8rem; font-size: .95rem; }
}

/* ===================================================================
   就業學程正式內容頁（Index10／Index11）
   _MainLayout 不載入 Design Baseline 的 style.css；以下只補入同一套元件規則，
   並限制在 .employment-program-page，避免影響其他既有 MVC 功能頁。
   =================================================================== */
/* 大專青年預聘計畫簡介頁（Index9）的切換列沒有包在 .plan-detail-header 內，
   拿不到該容器的下方留白，會與下方的計畫簡介黏在一起。
   這裡補上與其他模式相同的間距：padding-bottom 1.5rem + margin-bottom .5rem = 32px。 */
.employment-program-page.program-mode-switch-standalone {
    margin-bottom: .5rem;
    padding-bottom: 1.5rem;
}

.employment-program-page .plan-detail-header {
    display: grid;
    grid-template-columns: minmax(19rem, .85fr) minmax(0, 2fr);
    align-items: stretch;
    margin-bottom: .5rem;
    padding: .5rem 0 1.5rem;
}

.employment-program-page .plan-detail-heading {
    display: grid;
    align-content: center;
    gap: .2rem;
    min-width: 0;
    padding: .5rem 0;
}

.employment-program-page .plan-detail-heading .page-header {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: .5rem 0;
}

.employment-program-page .plan-detail-header .page-title {
    margin: 0;
    color: #b12d2b;
    font-size: clamp(1.75rem, 2.6vw, 1.8rem);
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
    text-align: center;
}

/* 五個模式的切換列：橫跨頁首格線的兩欄自成一列，並允許換行。
   原本只有兩個模式時放在左欄（19rem）尚可，五個長標籤會被擠成逐字換行。 */
.employment-program-page .program-mode-switch {
    display: flex;
    flex-wrap: wrap;
    grid-column: 1 / -1;
    justify-content: center;
    justify-self: center;
    gap: .15rem;
    width: 100%;
    min-width: 0;
    margin-top: .25rem;
    padding: .15rem;
    border: 1px solid #e7b29c;
    border-radius: 999px;
    background: #fff0e8;
}

.employment-program-page .program-mode-switch a {
    display: inline-flex;
    flex: 1 1 auto;
    white-space: nowrap;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-width: 0;
    min-height: 2.5rem;
    padding: .5rem 1.2rem;
    border-radius: 999px;
    color: #9b3f24 !important;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.employment-program-page .program-mode-switch a::before { content: none; }

.employment-program-page .program-mode-switch a:hover,
.employment-program-page .program-mode-switch a:focus-visible {
    background: #fff;
    color: #8f294d !important;
    box-shadow: 0 3px 9px rgba(143, 41, 77, .16);
}

.employment-program-page .program-mode-switch a[aria-current="page"] {
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 52%, #e9784f 100%);
    color: #fff !important;
    box-shadow: 0 4px 10px rgba(143, 41, 77, .28);
}

.employment-program-page .program-mode-switch a[aria-current="page"]::before {
    content: "✓";
    position: static;
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
}

.employment-program-page .program-mode-switch a[aria-current="page"]:hover,
.employment-program-page .program-mode-switch a[aria-current="page"]:focus-visible {
    background: #8f294d;
    color: #fff !important;
}

.employment-program-page .plan-local-nav--labeled { gap: .75rem; }

.employment-program-page .plan-local-nav--labeled .plan-local-nav__group {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: .4rem;
    padding: .65rem .85rem;
    border: 1px solid #ead5c9;
    border-radius: 14px;
    background: #fffaf6;
}

.employment-program-page .plan-local-nav--labeled .plan-local-nav__group--registration {
    border-color: #dce1c4;
    background: #fafbf3;
}

.employment-program-page .plan-local-nav__title {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-height: 1.75rem;
    margin: 0;
    padding: 0 .4rem .35rem;
    border-bottom: 1px solid #ead5c9;
    color: #9b3f24;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.employment-program-page .plan-local-nav__title--member {
    border-bottom-color: #dce1c4;
    color: #526d00;
}

.employment-program-page .plan-local-nav__lock {
    flex: 0 0 auto;
    font-size: .9rem;
    line-height: 1;
}

.employment-program-page .plan-local-nav__badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.4rem;
    margin-left: auto;
    padding: .1rem .55rem;
    border: 1px solid #83933d;
    border-radius: 999px;
    background: #fff;
    color: #526d00;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}

@media (min-width: 1188px) {
    .employment-program-page .plan-detail-header {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    }
}

@media (min-width: 561px) {
    .employment-program-page .plan-local-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 901px) and (max-width: 1187px) {
    .employment-program-page .plan-detail-header {
        grid-template-columns: 1fr;
        margin-bottom: 1rem;
        padding-bottom: 1rem;
    }

    .employment-program-page .plan-detail-heading {
        width: min(100%, 38rem);
        margin-inline: auto;
        padding-bottom: 1rem;
    }

    .employment-program-page .plan-detail-header .page-title { white-space: normal; }

    .employment-program-page .plan-local-nav {
        padding-top: 1rem;
        border-top: 1px solid #ddd;
    }
}

@media (max-width: 900px) {
    .employment-program-page .plan-detail-header { grid-template-columns: 1fr; }
    .employment-program-page .plan-detail-header .page-title { white-space: normal; }
}

/* Design Baseline：計畫簡介改為連續內容區塊，不再使用舊 Bootstrap 頁籤。 */
.detail-sections {
    display: grid;
    gap: 1rem;
    min-width: 0;
    width: 100%;
    max-width: 100%
}

.detail-section {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    scroll-margin-top: 1rem
}

.detail-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .1rem .5rem .1rem 1.5rem;
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 42%, #ff9b57 100%)
}

.detail-section__title {
    margin: 0;
    color: #fff;
    font-size: 1.37rem;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(70, 20, 25, .35)
}

.detail-section__title-actions {
    flex: 0 0 min(12rem, 20%);
    min-height: 2.5rem
}

.detail-section__title-actions:empty { visibility: hidden; }

.detail-section__body {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    padding: .5rem 0 0;
    background: #fff
}

/* Design Baseline：計畫簡介的名稱／內容資料列。 */
.detail-list {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow: hidden;
    box-shadow: 0 0 12px rgba(0, 0, 0, .2)
}

.detail-list__row {
    display: grid;
    grid-template-columns: 12rem minmax(0, 1fr);
    min-width: 0;
    width: 100%;
    max-width: 100%;
    border-bottom: 1px solid var(--card);
    transition: box-shadow .2s ease
}

.detail-list dt,
.detail-list dd {
    min-width: 0;
    margin: 0;
    padding: .5rem 1rem;
    overflow-wrap: anywhere;
    transition: background-color .2s ease, color .2s ease
}

.detail-list dt {
    background-image: linear-gradient(to right, #f4f4f4, #fff3e4);
    color: #5e3927;
    font-weight: 500;
    text-align: right
}

.detail-list__row:nth-child(odd) dd { background-color: #f4f4f4; }
.detail-list__row:nth-child(even) dd { background-color: #fff; }

.detail-list__row:hover,
.detail-list__row:focus-within {
    position: relative;
    z-index: 1;
    box-shadow: inset 4px 0 #d65b3a, 0 2px 7px rgba(115, 77, 0, .14)
}

.detail-list__row:hover dt,
.detail-list__row:focus-within dt {
    background: #f8dfcf;
    color: #7d2c18
}

.detail-list__row:hover dd,
.detail-list__row:focus-within dd { background: #fff3e8; }

.detail-rich-text ul { margin: 0; padding-left: 1.5rem; }
.detail-rich-text p { margin: 0 0 .5rem; }
.detail-rich-text h3 { margin: 1rem 0 .4rem; color: #7d2c18; font-size: 1rem; }
.detail-rich-text li + li { margin-top: .3rem; }

/* 大專青年預聘計畫：比照就業學程計畫簡介的連續內容卡。 */
.prehire-plan-content .detail-rich-text { color: #40332f; font-size: 1rem; line-height: 1.85; }
.prehire-plan-content .detail-rich-text > :first-child { margin-top: 0; }
.prehire-plan-content .detail-rich-text > :last-child { margin-bottom: 0; }
.prehire-plan-content .detail-rich-text ol { margin: 0; padding-left: 1.5rem; }
.prehire-application-list > li + li { margin-top: 1rem; }
.prehire-contact-table a {
    color: #7a3b55 !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: .15em
}

@media (max-width: 767.98px) {
    .detail-list__row { grid-template-columns: 1fr; }
    .detail-list dt {
        padding: .55rem 1rem;
        border-left: 4px solid #d65b3a;
        background-image: linear-gradient(to left, #f4f4f4 0%, #fff3e4 100%);
        text-align: left
    }
    .detail-list dd {
        min-width: 0;
        padding: .7rem 1rem;
        overflow-wrap: anywhere
    }
    .detail-list__row:nth-child(odd) dd,
    .detail-list__row:nth-child(even) dd { background: #fff; }
    .detail-list__row:hover dd,
    .detail-list__row:focus-within dd { background: #fff3e8; }

    .prehire-contact-wrap { overflow: visible; }
    .prehire-contact-table,
    .prehire-contact-table tbody,
    .prehire-contact-table tr,
    .prehire-contact-table td { display: block; width: 100%; }
    .prehire-contact-table { border: 0; background: transparent; }
    .prehire-contact-table caption { padding: .25rem 0 .65rem; }
    .prehire-contact-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap
    }
    .prehire-contact-table tr {
        overflow: hidden;
        margin-bottom: .85rem;
        border: 1px solid #e5d3bd;
        border-radius: 12px;
        background: #fff
    }
    .prehire-contact-table td,
    .prehire-contact-table tbody tr:nth-child(even) td {
        display: grid;
        grid-template-columns: 6.25rem minmax(0, 1fr);
        gap: .75rem;
        padding: .65rem .8rem;
        border: 0;
        border-top: 1px solid #eee2d8;
        background: #fff;
        text-align: left
    }
    .prehire-contact-table td:first-child { border-top: 0; }
    .prehire-contact-table td::before {
        content: attr(data-label);
        color: #7d2c18;
        font-weight: 700
    }
}

/* 後台計畫簡介內容：保留 PIF_CONTENT，僅統一外層排版與舊表格的 RWD。 */
.employment-program-content .detail-rich-text {
    color: #40332f;
    font-size: 1rem;
    line-height: 1.85
}

.employment-program-content .detail-section__body { overflow-x: auto; }
.employment-program-content .detail-rich-text > :first-child { margin-top: 0; }
.employment-program-content .detail-rich-text > :last-child { margin-bottom: 0; }

.employment-program-content .detail-rich-text table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    background: #fff
}

.employment-program-content .detail-rich-text th,
.employment-program-content .detail-rich-text td {
    padding: .55rem .75rem;
    border: 1px solid #e5d3bd;
    line-height: 1.7;
    vertical-align: middle;
    overflow-wrap: anywhere
}

.employment-program-content .detail-rich-text th {
    background: #89304f;
    color: #fff;
    font-weight: 600
}

.employment-program-content .detail-rich-text tbody tr:nth-child(even) td { background: #faf5ef; }

.employment-program-content iframe {
    display: block;
    width: 100%;
    min-height: 24rem;
    border: 0
}
.plan-regulation-section { margin-bottom: 1rem; }
.plan-document-link { display: inline-flex; align-items: center; gap: .65rem; max-width: 100%; padding: .75rem 1rem; border: 1px solid #e4d7cc; border-radius: 10px; background: #fffaf5; color: #6e244d; font-weight: 700; line-height: 1.55; }
.plan-document-link img { flex: 0 0 auto; }
.plan-document-link span:not(.external-link-icon):not(.visually-hidden) { min-width: 0; overflow-wrap: anywhere; }
.plan-document-link:hover,
.plan-document-link:focus-visible { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); text-decoration: none; }

/* 相關規定：多份文件時垂直排列（.plan-document-link 是 inline-flex，預設會並排） */
.plan-regulation-section .detail-section__body { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }

/* 明細頁區塊內的相關連結（綜合查詢課程明細「所屬計畫」） */
.detail-link-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.detail-link-chips > li { margin: 0; }
.detail-link-chips a { display: inline-flex; align-items: center; gap: .3rem; padding: .45rem 1rem; border: 1px solid #e4d7cc; border-radius: 999px; background: #fffaf5; color: #6e244d; font-weight: 700; line-height: 1.5; text-decoration: none; }
.detail-link-chips a:hover,
.detail-link-chips a:focus-visible { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); text-decoration: none; }

.employment-program-empty {
    margin: 0;
    padding: 2rem 1rem;
    color: #746961;
    text-align: center
}

@media (max-width: 560px) {
    .detail-section__header {
        gap: .6rem;
        min-height: 3rem;
        padding: .35rem .5rem .35rem 1rem;
        border-radius: 12px 12px 0 0
    }

    .detail-section__title { font-size: 1.25rem; }
    .detail-section__body { padding-top: .5rem; }
}

/* Design Baseline：合作廠商帳號申請公告。 */
.registration-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    margin: 0 auto 1.75rem;
    padding: 1.1rem 1.5rem;
    border: 1px solid #efd1ad;
    border-radius: 1rem;
    background: #fff8ef;
    list-style: none
}
.registration-steps li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .35rem .5rem;
    color: #6f625a;
    font-weight: 700
}
.registration-steps li:not(:last-child)::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 50%;
    left: calc(50% + 3.8rem);
    width: calc(100% - 7.6rem);
    height: 2px;
    background: #dcc6b5;
    transform: translateY(-50%)
}
.registration-steps li span {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 2px solid #c9ae99;
    border-radius: 50%;
    background: #fff;
    font-size: 1rem
}
.registration-steps li strong { position: relative; z-index: 1; background: #fff8ef; }
.registration-steps li.is-current { color: #8b421e; }
.registration-steps li.is-current span { border-color: #df7922; background: #df7922; color: #fff; }
.registration-flow { margin-bottom: 1rem; }
.registration-flow .detail-section__body { padding: 1rem; background: #fff; }
.registration-flow .registration-steps { margin-bottom: 0; }
.registration-notice { max-width: 56rem; margin-inline: auto; }
.registration-subsection-title {
    margin: 0;
    padding: .8rem 1rem .8rem 1.2rem;
    border-left: .4rem solid #d9692b;
    border-bottom: 1px solid #edcba7;
    border-radius: .4rem .4rem 0 0;
    background: #fff3e4;
    color: #6c3822;
    font-size: 1.25rem;
    line-height: 1.35
}
.registration-notice__body {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #edcba7;
    border-top: 0;
    border-radius: 0 0 .75rem .75rem;
    background: #fff
}
.registration-notice-list { display: grid; gap: .75rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.registration-notice-list li {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid #edd7c3;
    border-radius: .75rem;
    background: #fffdf9
}
.registration-notice-number {
    display: inline-grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: #f6dfc7;
    color: #8b421e;
    font-weight: 800
}
.registration-notice-list strong { display: block; margin-bottom: .2rem; color: #6c3822; }
.registration-notice-list p { margin: 0; line-height: 1.65; }
.registration-agreement {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: .65rem;
    padding: 1rem;
    border: 1px solid #edc593;
    border-radius: .65rem;
    background: #fff8ef;
    font-weight: 700;
    cursor: pointer
}
.registration-agreement input {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .1rem;
    accent-color: #c85f20
}
.registration-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.registration-actions .btn { width: auto; min-width: 8rem; border-radius: 999px; padding: .6rem 2rem; font-weight: 700; }

.registration-required-note,
.registration-form-notice {
    margin: 0 0 .85rem;
    padding: .7rem .9rem;
    border: 1px solid #ead8c8;
    border-radius: 8px;
    background: #fff8f1;
    color: #654536;
    line-height: 1.6;
}
.registration-required-note { border-color: #e6c9b0; background: #fff8ef; }
.registration-form-notice { border-color: #d9dfb7; background: #f8faed; color: #4d5134; }
.application-form-page .required-mark,
.registration-form .required-mark { color: #b42318; font-weight: 800; }
.registration-form-section { margin-bottom: 1.5rem; }
.registration-fields {
    display: grid;
    gap: 1rem;
    padding: 1.4rem;
    border: 1px solid #edcba7;
    border-top: 0;
    border-radius: 0 0 .75rem .75rem;
    background: #fff;
    box-shadow: 0 4px 14px rgba(112, 72, 45, .07)
}
.registration-field {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
    align-items: start;
    gap: 1.25rem
}
.registration-field > label,
.registration-field > .registration-label {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .15rem;
    min-height: 2.75rem;
    padding: .55rem 0;
    color: #5b3a2c;
    font-weight: 700;
    text-align: right
}
.registration-field__label.is-required::before,
.registration-field > label.is-required::before,
.registration-label.is-required::before { color: #b42318; font-weight: 800; content: "＊"; }
.registration-static-value {
    display: flex; align-items: center; width: min(36rem, 100%); min-height: 2.75rem;
    margin: 0; padding: .55rem .75rem; border: 1px solid #ddd5cf; border-radius: .45rem;
    background: #f6f4f2; color: #514943; line-height: 1.5; overflow-wrap: anywhere;
}
.registration-static-text { margin: 0; color: inherit; font: inherit; font-weight: 400; }
.registration-choice-field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0
}
.registration-choice-field > legend {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 0;
    border: 0;
    color: #5b3a2c;
    font: inherit;
    font-weight: 700;
    text-align: right
}
.registration-field > input,
.registration-field > select,
.registration-field > div:not(.registration-address-controls) { margin: 0; }
.registration-field input,
.registration-field select {
    width: min(36rem, 100%);
    min-height: 2.75rem;
    padding: .55rem .75rem;
    border: 1px solid #cfc7c1;
    border-radius: .45rem;
    background: #fff;
    color: #302a26;
    font: inherit
}
.application-form-page input[readonly],
.application-form-page textarea[readonly],
.registration-form input[readonly],
.registration-form textarea[readonly] { border-color: #d8d0ca; background: #f6f4f2; color: #514943; opacity: 1; cursor: default; box-shadow: none; }
.application-form-page input:disabled,
.application-form-page select:disabled,
.application-form-page textarea:disabled,
.registration-form input:disabled,
.registration-form select:disabled,
.registration-form textarea:disabled { border-color: #d7d2cd; background: #eeece9; color: #625b56; opacity: 1; cursor: not-allowed; box-shadow: none; }
.application-form-page input[type="radio"]:disabled,
.application-form-page input[type="checkbox"]:disabled,
.registration-form input[type="radio"]:disabled,
.registration-form input[type="checkbox"]:disabled { accent-color: #747b48; opacity: 1; }
.application-form-page .survey-option:has(input:disabled),
.registration-form .survey-option:has(input:disabled) { border-color: #ddd8d3; background: #f4f2ef; color: #625b56; cursor: default; }
.registration-field select { width: min(22rem, 100%); }
.registration-field > div:not(.registration-address-controls) input { width: 100%; }
.registration-field .hint,
.registration-field-hint,
.registration-section-hint { color: var(--muted); font-size: .9rem; line-height: 1.6; }
.registration-field .hint,
.registration-field-hint { display: block; margin: .35rem 0 0; }
.registration-section-hint { margin: 0 0 .85rem; }
.registration-address-controls { display: grid; min-width: 0; gap: .55rem; padding: 0; }
.registration-address-controls > input { width: 100%; }
.registration-postcode-row { display: grid; grid-template-columns: minmax(0, 1fr) 2.75rem; gap: .4rem; width: min(19rem, 100%); }
.registration-postcode-row input { min-width: 0; width: 100%; }
.registration-address-row { display: grid; grid-template-columns: minmax(8rem, .35fr) minmax(0, 1fr); gap: .55rem; }
.registration-address-row--selects { grid-template-columns: minmax(8rem, .3fr) minmax(8rem, .3fr) minmax(16rem, 1fr); }
.registration-address-row input,
.registration-address-row select { width: 100%; min-width: 0; }
.registration-address-lookup {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: .45rem;
    border: 1px solid #cfc7c1;
    border-radius: .35rem;
    background: #fff;
    color: #4c413a;
    font: inherit;
    font-weight: 700;
    cursor: pointer
}
.registration-address-lookup:hover,
.registration-address-lookup:focus-visible { border-color: #c85f20; background: #fff4e8; }
@media (max-width: 767.98px) {
    .registration-address-row,
    .registration-address-row--selects { grid-template-columns: 1fr; }
}
.registration-field input[aria-invalid="true"],
.registration-field select[aria-invalid="true"],
.registration-field textarea[aria-invalid="true"],
.registration-field .input-validation-error { border-color: #b42318; background-color: #fffafa; box-shadow: 0 0 0 2px rgba(180, 35, 24, .12); }
.registration-field .field-validation-error,
.registration-form .field-validation-error { display: block; margin-top: .35rem; color: #9f1f18; font-size: .9rem; font-weight: 700; line-height: 1.5; }
.registration-field .field-validation-valid,
.registration-form .field-validation-valid { display: none; }
.registration-form .validation-summary-errors { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #e1aaa5; border-radius: 8px; background: #fff4f3; color: #821b16; }
.registration-form .validation-summary-errors ul { margin: .35rem 0 0; padding-left: 1.4rem; }
.registration-form .validation-summary-valid { display: none; }
.tax-account-application-page .registration-form-section { max-width: 58rem; margin-inline: auto; }
.tax-account-captcha { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.tax-account-captcha > input { width: 11rem !important; }
.tax-account-captcha .logincode { display: block; width: auto; max-width: 9rem; height: 2.75rem; border: 1px solid #d7cec7; border-radius: .4rem; cursor: pointer; }
.tax-account-captcha-audio { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.75rem; padding: .45rem .7rem; border-radius: .4rem; color: #6c3822; font-weight: 700; }
.tax-account-captcha-audio:hover,
.tax-account-captcha-audio:focus-visible { background: #fff3e4; color: #6c3822; }
.tax-account-captcha-refresh { min-height: 2.75rem; margin: 0; padding: .45rem .9rem; transform: none !important; }

@media (max-width: 767.98px) {
    .registration-field { grid-template-columns: 1fr; }
    .registration-field > label,
    .registration-field > .registration-label {
        justify-content: flex-start;
        min-height: auto;
        padding: 0;
        text-align: left
    }
    .registration-choice-field > legend { justify-content: flex-start; min-height: auto; padding: 0; text-align: left; }
    .registration-field input,
    .registration-field select { width: 100%; }
    .tax-account-captcha { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .tax-account-captcha > input { grid-column: 1 / -1; width: 100% !important; }
    .tax-account-captcha .logincode { max-width: 100%; }
    .tax-account-captcha-audio,
    .tax-account-captcha-refresh { justify-content: center; }
}

@media (max-width: 767.98px) {
    .registration-steps { padding: .9rem .5rem; font-size: .88rem; }
    .registration-steps li { flex-direction: column; gap: .3rem; }
    .registration-steps li:not(:last-child)::after { top: 1.45rem; left: calc(50% + 1.5rem); width: calc(100% - 3rem); }
    .registration-steps li strong { background: transparent; }
    .registration-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .registration-actions .btn { width: 100%; min-height: 44px; }
    .registration-notice-list li { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .75rem; padding: .85rem; }
    .registration-notice-number { width: 2.5rem; height: 2.5rem; font-size: .9rem; }
}


/* 共用查詢彈窗：地址查詢及後續系統查詢元件共用。 */
.common-dialog .modal-dialog {
    width: min(800px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    margin: 2rem auto
}
.common-dialog .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 18px 50px rgba(65, 38, 25, .28)
}
.common-dialog .modal-header {
    min-height: 3.75rem;
    padding: .85rem 1.25rem;
    border: 0;
    background: linear-gradient(90deg, #8f294d 0%, #c44b54 52%, #e9784f 100%);
    color: #fff
}
.common-dialog .modal-title {
    margin: 0;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.45
}
.common-dialog .modal-header .close {
    margin-top: 0;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    text-shadow: none;
    opacity: .9
}
.common-dialog .modal-header .close:hover,
.common-dialog .modal-header .close:focus { color: #fff; opacity: 1; }
.common-dialog .modal-body {
    max-height: 70vh;
    padding: 0;
    overflow: auto;
    background: #fffaf6
}
.common-dialog .modal-footer {
    display: flex;
    justify-content: center;
    padding: .75rem 1rem;
    border-top: 1px solid #ead5c9;
    background: #fff
}
.common-dialog .modal-footer .btn-close {
    min-width: 8rem;
    border: 1px solid #c9b7aa;
    border-radius: 999px;
    background: #fff;
    color: #6c3822;
    font-weight: 700
}
.zip-search-panel {
    position: sticky;
    z-index: 5;
    top: 0;
    padding: 1rem;
    border-bottom: 1px solid #edcba7;
    background: rgba(255, 250, 246, .98);
    box-shadow: 0 5px 14px rgba(112, 72, 45, .1)
}
.zip-search-grid {
    display: grid;
    grid-template-columns: minmax(7rem, .55fr) minmax(18rem, 1.35fr) minmax(12rem, 1fr) auto;
    align-items: end;
    gap: .75rem
}
.zip-search-field { display: grid; gap: .3rem; min-width: 0; }
.zip-search-field label {
    margin: 0;
    color: #6c3822;
    font-size: .92rem;
    font-weight: 700
}
.zip-search-field input,
.zip-search-field select {
    width: 100%;
    min-width: 0;
    min-height: 2.65rem;
    padding: .5rem .7rem;
    border: 1px solid #cfc7c1;
    border-radius: .45rem;
    background: #fff;
    color: #302a26;
    font: inherit
}
.zip-search-field input:focus,
.zip-search-field select:focus {
    border-color: #c85f20;
    outline: 3px solid rgba(200, 95, 32, .18);
    outline-offset: 1px
}
.zip-district-selects {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .3rem
}
.zip-search-actions { display: flex; gap: .45rem; align-items: center; }
.zip-search-actions .btn {
    min-width: 4.5rem;
    min-height: 2.65rem;
    margin: 0;
    padding: .45rem .85rem;
    border-radius: 999px;
    font-weight: 700
}
.zip-search-actions .btn-primary { border-color: #aa4b8f; background: #aa4b8f; color: #fff; }
.zip-search-actions .btn-secondary { border-color: #c9b7aa; background: #fff; color: #6c3822; }
.zip-results { min-height: 8rem; padding: 1rem; }
.zip-table-wrap {
    max-width: 100%;
    overflow: auto;
    border: 1px solid #ead5c9;
    border-radius: .75rem;
    background: #fff
}
.zip-table-wrap:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
.zip-result-table { width: 100%; min-width: 44rem; border-collapse: collapse; }
.zip-result-table th,
.zip-result-table td {
    padding: .65rem .75rem;
    border-bottom: 1px solid #eadfd7;
    text-align: left;
    vertical-align: middle
}
.zip-result-table th {
    background: #89304f;
    color: #fff;
    font-weight: 700;
    white-space: nowrap
}
.zip-result-table th:first-child,
.zip-result-table td:first-child,
.zip-result-table th:nth-child(2),
.zip-result-table td:nth-child(2) { text-align: center; }
.zip-result-row { cursor: pointer; transition: background-color .18s ease, box-shadow .18s ease; }
.zip-result-row:nth-child(even) { background: #faf5ef; }
.zip-result-row:hover,
.zip-result-row:focus-within { background: #fff0e8; box-shadow: inset 4px 0 #d65b3a; }
.zip-result-choice { width: 1.2rem; height: 1.2rem; margin: 0; accent-color: #aa4b8f; }
.zip-empty { margin: 0; padding: 2rem 1rem; color: #746961; text-align: center; }

@media (max-width: 767.98px) {
    .common-dialog .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); margin: .5rem auto; }
    .common-dialog .modal-body { max-height: calc(100vh - 9rem); }
    .zip-search-grid { grid-template-columns: 1fr 1fr; }
    .zip-search-field--district,
    .zip-search-field--road { grid-column: 1 / -1; }
    .zip-search-actions { justify-content: flex-end; }
    .zip-search-actions .btn { flex: 1 1 0; }
    .zip-results { padding: .75rem; }
}


/* Design Baseline 原生 dialog 預覽：沿用正式 MVC 共用彈窗元件外觀。 */
dialog.common-dialog {
    width: auto;
    max-width: none;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    overflow: visible
}
dialog.common-dialog::backdrop { background: rgba(48, 31, 25, .55); backdrop-filter: blur(2px); }
dialog.common-dialog .modal-dialog { margin: 0; }
dialog.common-dialog .modal-body { height: min(28rem, 70vh); }


.common-dialog .modal-header { position: relative; }
.common-dialog .modal-header .close {
    position: absolute;
    top: .65rem;
    right: 1rem
}
.common-dialog .modal-title { padding-right: 2.5rem; }


/* 共用查詢彈窗第二版：置中、關閉控制與行動版可用高度。 */
.common-dialog.in {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem
}
.common-dialog.in .modal-dialog {
    flex: 0 1 800px;
    margin: 0
}
.common-dialog .modal-header .close {
    display: inline-grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.65rem;
    font-weight: 400;
    line-height: 1;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease
}
.common-dialog .modal-header .close:hover,
.common-dialog .modal-header .close:focus-visible {
    border-color: #fff;
    background: #fff;
    color: #8f294d;
    outline: 3px solid rgba(255, 255, 255, .35);
    outline-offset: 2px
}
.zip-search-actions .btn-query,
.zip-search-actions .btn-clear {
    border-width: 1px;
    border-style: solid;
    box-shadow: none;
    transform: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease
}
.zip-search-actions .btn-query {
    border-color: #9b3f78;
    background: #9b3f78;
    color: #fff
}
.zip-search-actions .btn-query:hover,
.zip-search-actions .btn-query:focus-visible {
    border-color: #7f2f61;
    background: #7f2f61;
    color: #fff;
    box-shadow: none;
    transform: none !important
}
.zip-search-actions .btn-clear {
    border-color: #c9b7aa;
    background: #fff;
    color: #6c3822
}
.zip-search-actions .btn-clear:hover,
.zip-search-actions .btn-clear:focus-visible {
    border-color: #a98d79;
    background: #fff3e8;
    color: #6c3822;
    box-shadow: none;
    transform: none !important
}
dialog.common-dialog {
    inset: 0;
    width: min(800px, calc(100vw - 2rem));
    margin: auto
}
dialog.common-dialog .modal-dialog { width: 100%; max-width: 100%; }
dialog.common-dialog .modal-body { height: min(36rem, calc(100dvh - 9rem)); }

@media (max-width: 767.98px) {
    .common-dialog.in { align-items: center; padding: .5rem; }
    .common-dialog .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); }
    .common-dialog .modal-body,
    dialog.common-dialog .modal-body {
        height: min(32rem, 62dvh);
        max-height: min(32rem, 62dvh)
    }
    .zip-search-panel { position: static; padding: .85rem; box-shadow: none; }
    .zip-search-grid { grid-template-columns: 1fr; }
    .zip-search-field--district,
    .zip-search-field--road { grid-column: auto; }
    .zip-search-actions { justify-content: stretch; }
}


/* 地址查詢結果：行動版改為卡片，桌機版維持資料表。 */
@media (max-width: 767.98px) {
    .zip-table-wrap {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent
    }
    .zip-result-table {
        display: block;
        min-width: 0
    }
    .zip-result-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0
    }
    .zip-result-table tbody {
        display: grid;
        gap: .75rem
    }
    .zip-result-table .zip-result-row {
        display: grid;
        grid-template-columns: 1fr;
        padding: .7rem .8rem;
        border: 1px solid #ead5c9;
        border-radius: .75rem;
        background: #fff;
        box-shadow: 0 3px 10px rgba(112, 72, 45, .08)
    }
    .zip-result-table .zip-result-row:nth-child(even) { background: #fffaf6; }
    .zip-result-table .zip-result-row:hover,
    .zip-result-table .zip-result-row:focus-within {
        border-color: #d65b3a;
        background: #fff3e8;
        box-shadow: inset 4px 0 #d65b3a, 0 4px 12px rgba(112, 72, 45, .12)
    }
    .zip-result-table td,
    .zip-result-table td:first-child,
    .zip-result-table td:nth-child(2) {
        display: grid;
        grid-template-columns: 5.75rem minmax(0, 1fr);
        gap: .65rem;
        padding: .35rem .25rem;
        border: 0;
        text-align: left
    }
    .zip-result-table td::before {
        content: attr(data-label);
        color: #7d4932;
        font-weight: 700
    }
    .zip-result-table .zip-result-select {
        order: 10;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: .5rem;
        margin-top: .3rem;
        padding-top: .65rem;
        border-top: 1px solid #eadfd7;
        color: #7d4932;
        font-weight: 700
    }
    .zip-result-table .zip-result-select::before { content: attr(data-label); }
    .zip-result-choice { flex: 0 0 auto; }
}

/* YR013 會員雙週誌元件：由 Design Baseline 移植，資料與互動仍由 MVC 提供。 */
.jconfirm .jconfirm-box.signature-qr-dialog {
    max-width: 34rem;
    max-height: calc(100vh - 3rem);
    padding: 0 0 1rem !important;
    overflow: hidden;
}
.jconfirm .jconfirm-box.signature-qr-dialog > .title {
    align-items: center;
    margin: 0;
    padding: .8rem 1.25rem;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: linear-gradient(90deg, #8f294d, #a94566);
    color: #fff;
}
.jconfirm .signature-qr-dialog .blockAlertTitle,
.jconfirm .signature-qr-dialog .blockAlertTitle span { color: #fff !important; }
.jconfirm .jconfirm-box.signature-qr-dialog > .content {
    max-height: 65vh;
    padding: 1.1rem 1.5rem .25rem;
    overflow-y: auto;
    text-align: center;
}
.jconfirm .signature-qr-dialog .blockAlertMessage { line-height: 1.7; }
.jconfirm .signature-qr-dialog .blockAlertMessage img {
    display: block;
    width: min(16rem, 100%);
    height: auto;
    margin: 1rem auto 0;
}
.jconfirm .jconfirm-box.signature-qr-dialog > .buttons {
    margin: 0 1.5rem;
    padding-top: .8rem;
    border-top: 1px solid #ead8c8;
}
.signature-qr-content { max-width: 30rem; margin: 0 auto; text-align: center; }
.signature-qr-content p { margin: .4rem 0; line-height: 1.7; }
.signature-qr-content__lead { color: #6e244d; font-weight: 700; }
.signature-qr-content__link { display: inline-block; margin: .75rem auto .25rem; padding: .5rem; border: 1px solid #e0d3ca; border-radius: 12px; background: #fff; }
.signature-qr-content__link:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.signature-qr-content__link img { display: block; width: min(16rem, 100%); height: auto; margin: 0 auto; }
.signature-qr-content__help { color: #746961; font-size: .92rem; }
.jconfirm .signature-qr-dialog .blockMessage { max-width: 30rem; margin: 0 auto; line-height: 1.7; text-align: center; }
.jconfirm .signature-qr-dialog .blockMessage img { display: block; width: min(16rem, 100%); height: auto; margin: 1rem auto 0; padding: .5rem; border: 1px solid #e0d3ca; border-radius: 12px; background: #fff; }

.member-mode {
    --member-accent: #83933d;
    --member-accent-dark: #4d5134;
    --member-accent-soft: #f1f5dc;
    --member-readonly-accent: #66742f;
}

/* Design Baseline：會員問卷資訊卡、Likert 題組與列表按鈕。 */
.member-info-card {
    overflow: hidden;
    border: 1px solid #d9d1cb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(80, 55, 40, .1);
}
.member-info-card__heading {
    margin: 0;
    padding: .7rem 1rem;
    border-bottom: 1px solid #dce1c4;
    background: #fafbf3;
    color: var(--member-accent-dark);
    font-size: 1.1rem;
}
.member-info-card__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}
.member-info-card__grid > div {
    min-width: 0;
    padding: .8rem 1rem;
    border-left: 1px solid #e3dcd7;
}
.member-info-card__grid > div:first-child { border-left: 0; }
.member-info-card__grid dt {
    margin-bottom: .2rem;
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}
.member-info-card__grid dd {
    margin: 0;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.key-course-info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.key-course-info-grid > div:nth-child(-n + 4) { border-bottom: 1px solid #e3dcd7; }
.key-course-info-grid > div:last-child {
    grid-column: 1 / -1;
    border-left: 0;
}
.survey-form { display: grid; gap: 1rem; }
.member-mode.survey-detail-page .survey-text-input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 2.75rem;
    margin: 0;
    padding: .65rem .8rem;
    border: 1px solid #aa9b91;
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    font: inherit;
    line-height: 1.5;
    box-shadow: none;
}
.member-mode.survey-detail-page .survey-text-input:focus {
    border-color: var(--member-accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(111,128,0,.14);
}
.survey-section-instruction { margin: 0 0 1rem; line-height: 1.7; }
.survey-question { margin: 0; padding: 1.1rem 0; border: 0; }
.survey-question + .survey-question { box-shadow: inset 0 1px 0 #e5dfdb; }
.survey-question > legend { float: left; width: 100%; margin: 0 0 .65rem; padding: 0; color: var(--text); font-weight: 700; }
.survey-question > legend + * { clear: both; }
/* 會員問卷題目共用重置：由 Design Baseline 接管 Bootstrap 的 fieldset／legend。 */
.member-mode.survey-detail-page .survey-question { min-width: 0; margin: 0; padding: 1.1rem 0; border: 0; }
.member-mode.survey-detail-page .survey-question > legend { float: left; width: 100%; margin: 0 0 .65rem; padding: 0; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 1rem; font-weight: 700; line-height: 1.65; }
.member-mode.survey-detail-page .survey-question > legend + * { clear: both; }
.survey-subsection-title { margin: 1rem 0; padding: .55rem .8rem; border-left: 4px solid var(--member-accent); background: #f7f8ee; color: var(--member-accent-dark); font-size: 1.05rem; }
.survey-subsection-title:first-child { margin-top: 0; }
.survey-intro {
    margin: 0;
    padding: .8rem 1rem;
    border-left: 4px solid var(--member-accent);
    background: var(--member-accent-soft);
}
.survey-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem .75rem; }
.survey-option {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    min-height: 2.6rem;
    padding: .55rem .7rem;
    border: 1px solid #d8d0ca;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}
.survey-option:hover,
.survey-option:focus-within { border-color: var(--member-accent); background: var(--member-accent-soft); }
.survey-option input { flex: 0 0 auto; margin-top: .3rem; accent-color: var(--member-accent); }
.survey-likert {
    --survey-question-column: 20rem;
    overflow-x: auto;
    border: 1px solid #d8d0ca;
    border-radius: 10px;
}
.survey-likert-header,
.survey-likert-row {
    display: grid;
    grid-template-columns: var(--survey-question-column) repeat(5, minmax(5.5rem, 1fr));
    min-width: 48rem;
}
.survey-likert-header {
    align-items: stretch;
    background: var(--member-accent-dark);
    color: #fff;
    font-weight: 700;
    text-align: center;
}
.survey-likert-header > span,
.survey-likert-row > label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: .65rem .5rem;
}
.survey-likert-row {
    margin: 0;
    min-inline-size: 0;
    padding: 0;
    border: 0;
}
.survey-likert-row + .survey-likert-row { border-top: 1px solid #ded8d3; }
.survey-likert-group {
    margin: 0;
    padding: .65rem 1rem;
    border-top: 1px solid #d5dcb1;
    background: var(--member-accent-soft);
    color: var(--member-accent-dark);
    font-size: 1rem;
}
.survey-likert-row::before {
    content: attr(data-question);
    display: flex;
    align-items: center;
    padding: .65rem .75rem;
    font-weight: 700;
}
.survey-likert-row[data-question] legend {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}
.survey-likert-row label { margin: 0; }
.survey-likert-row input {
    display: block;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0 auto;
    accent-color: var(--member-accent);
}
.survey-likert + .journal-field-label { margin-top: 1.5rem; }
.survey-textarea {
    display: block;
    width: 100%;
    min-height: 9rem;
    padding: .75rem .9rem;
    border: 1px solid #aa9b91;
    border-radius: 10px;
    background: #fff;
    color: var(--text);
    font: inherit;
    resize: vertical;
}
.survey-form .hint { margin: .4rem 0 0; color: var(--muted); font-size: .92rem; }
.survey-form.is-readonly .survey-option { cursor: default; }
.survey-form.is-readonly input:disabled { opacity: 1; }
.survey-form.is-readonly input[type="radio"],
.survey-form.is-readonly input[type="checkbox"] {
    position: relative;
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
    border: 1px solid #9b958f;
    background: #fff;
    appearance: none;
    -webkit-appearance: none;
}
.survey-form.is-readonly input[type="radio"] { border-radius: 50%; }
.survey-form.is-readonly input[type="radio"]:checked {
    border: .32rem solid var(--member-readonly-accent);
    background: #fff;
}
.survey-form.is-readonly input[type="checkbox"] { border-radius: 3px; }
.survey-form.is-readonly input[type="checkbox"]:checked {
    border-color: var(--member-readonly-accent);
    background: var(--member-readonly-accent);
}
.survey-form.is-readonly input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    top: .08rem;
    left: .34rem;
    width: .28rem;
    height: .55rem;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(45deg);
}

/* 大專青年預聘－學員滿意度調查表：保留既有 RadioGroupFor 資料綁定。 */
.prehire-survey-info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prehire-survey-info-grid > div:nth-child(n + 5) { border-top: 1px solid #e3dcd7; }
.prehire-survey-info-grid__wide { grid-column: span 2; }
.prehire-survey-info-grid__wide:nth-child(5) { border-left: 0; }
.prehire-survey-questions { padding-top: .25rem; padding-bottom: .25rem; }
.prehire-survey-options { display: flex; flex-wrap: wrap; gap: .55rem .75rem; }
.prehire-survey-options label,
.prehire-survey-options .prehire-radio-option { display: inline-flex !important; align-items: flex-start; gap: .45rem; width: auto !important; min-height: 2.6rem; margin: 0 !important; padding: .55rem .7rem; border: 1px solid #d8d0ca; border-radius: 8px; background: #fff; cursor: pointer; }
.prehire-survey-options .radio { display: contents !important; }
.prehire-survey-options label:hover,
.prehire-survey-options label:focus-within { border-color: var(--member-accent); background: var(--member-accent-soft); }
.prehire-survey-options input[type="radio"] { flex: 0 0 auto; margin: .25rem 0 0 !important; accent-color: var(--member-accent); }
.prehire-student-survey-table { width: 100%; min-width: 0; table-layout: fixed; }
.prehire-student-survey-table th,
.prehire-student-survey-table td { padding: .75rem .65rem; text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
.prehire-student-survey-table th:nth-child(1) { width: 8%; }
.prehire-student-survey-table th:nth-child(2) { width: 10%; }
.prehire-student-survey-table th:nth-child(3) { width: 18%; }
.prehire-student-survey-table th:nth-child(4) { width: 18%; }
.prehire-student-survey-table th:nth-child(5),
.prehire-student-survey-table th:nth-child(6) { width: 12%; }
.prehire-student-survey-table th:nth-child(7) { width: 13%; }
.prehire-student-survey-table th:nth-child(8) { width: 9%; }
.prehire-student-survey-table th:nth-child(3),
.prehire-student-survey-table td:nth-child(3),
.prehire-student-survey-table th:nth-child(4),
.prehire-student-survey-table td:nth-child(4) { text-align: left; }
.prehire-student-survey-table .survey-date-status-cell .status-badge { white-space: nowrap; }
.prehire-student-survey-list-page .prehire-student-survey-table .btn-table { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 4.75rem; min-height: 2.5rem; margin: 0; padding: .4rem .9rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-size: .95rem; font-weight: 700; line-height: 1.3; box-shadow: none; }
.prehire-student-survey-list-page .prehire-student-survey-table .btn-table--primary { border-color: var(--member-accent); background: var(--member-accent); color: #fff; }
.prehire-student-survey-list-page .prehire-student-survey-table .btn-table:hover,
.prehire-student-survey-list-page .prehire-student-survey-table .btn-table:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-dark); color: #fff; }
.prehire-student-survey-detail .prehire-survey-options label { position: relative; display: inline-flex !important; align-items: flex-start; gap: .5rem; width: auto !important; min-height: 2.6rem; margin: 0 !important; padding: .55rem .7rem !important; font-size: 1rem; font-weight: 400; line-height: 1.5; }
.prehire-student-survey-detail .prehire-survey-options label input[type="radio"] { position: static; flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0 !important; }
.prehire-student-survey-detail .prehire-survey-options label:has(input:checked) { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }
.prehire-student-survey-detail .prehire-survey-likert-row { grid-template-columns: var(--survey-question-column) repeat(5, minmax(5.5rem, 1fr)); }
.prehire-student-survey-detail .prehire-survey-likert-row::before { display: none; }
.prehire-student-survey-detail .prehire-survey-likert-row > legend { display: flex; align-items: center; width: auto; margin: 0; padding: .65rem .75rem; border-right: 1px solid #ded8d3; font-weight: 700; }
.prehire-student-survey-detail .prehire-survey-likert-options,
.prehire-student-survey-detail .prehire-survey-likert-options .radio { display: contents !important; }
.prehire-student-survey-detail .prehire-survey-likert-options .radio > label { display: inline-flex !important; align-items: center; justify-content: center; gap: 0; min-width: 0; min-height: 3.25rem; margin: 0 !important; padding: .55rem .35rem !important; border: 0; border-left: 1px solid #e5dfdb; border-radius: 0; background: #fff; font-size: 0; line-height: 1; text-align: center; }
.prehire-student-survey-detail .prehire-survey-likert-options input[type="radio"] { position: static; flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: 0 !important; accent-color: var(--member-accent); }
.prehire-student-survey-detail .prehire-survey-likert-options label:has(input:checked) { background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }

/* 產學攜手合作 2.0－訓練生問卷填寫。 */
.iacp-survey-info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.iacp-survey-date-field .survey-text-input { width: 100%; min-width: 0; }
.iacp-survey-table { width: 100%; min-width: 0; table-layout: fixed; }
.iacp-survey-table th,
.iacp-survey-table td { padding: .75rem .65rem; text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
.iacp-survey-table th:nth-child(1) { width: 11%; }
.iacp-survey-table th:nth-child(2) { width: 18%; }
.iacp-survey-table th:nth-child(3) { width: 19%; }
.iacp-survey-table th:nth-child(4) { width: 15%; }
.iacp-survey-table th:nth-child(5) { width: 19%; }
.iacp-survey-table th:nth-child(6) { width: 11%; }
.iacp-survey-table th:nth-child(7) { width: 7%; }
.iacp-survey-table th:nth-child(2),
.iacp-survey-table td:nth-child(2),
.iacp-survey-table th:nth-child(3),
.iacp-survey-table td:nth-child(3),
.iacp-survey-table th:nth-child(5),
.iacp-survey-table td:nth-child(5) { text-align: left; }
.iacp-survey-list-page .iacp-survey-table .btn-table { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 4.75rem; min-height: 2.5rem; margin: 0; padding: .4rem .9rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-size: .95rem; font-weight: 700; line-height: 1.3; box-shadow: none; }
.iacp-survey-list-page .iacp-survey-table .btn-table--primary { border-color: var(--member-accent); background: var(--member-accent); color: #fff; }
.iacp-survey-list-page .iacp-survey-table .btn-table:hover,
.iacp-survey-list-page .iacp-survey-table .btn-table:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-dark); color: #fff; }
.iacp-survey-likert-row { grid-template-columns: var(--survey-question-column) minmax(27.5rem, 1fr); }
.iacp-survey-likert-row::before { display: none; }
.iacp-survey-likert-row > legend { display: flex; align-items: center; width: auto; margin: 0; padding: .65rem .75rem; border-right: 1px solid #ded8d3; font-weight: 700; }
.iacp-survey-likert-options { display: grid; grid-template-columns: repeat(5, minmax(5.5rem, 1fr)); min-width: 0; }
.iacp-survey-likert-options .prehire-survey-options { display: contents; }
.iacp-survey-likert-options .radio { display: flex !important; align-items: stretch; justify-content: center; min-width: 0; margin: 0 !important; padding: 0 !important; border: 0; border-left: 1px solid #e5dfdb; border-radius: 0; background: #fff; }
.iacp-survey-likert-options .radio > label { display: inline-flex !important; align-items: center; justify-content: center; gap: .35rem; width: 100% !important; min-height: 3.25rem; margin: 0 !important; padding: .55rem .35rem !important; border: 0; border-radius: 0; background: transparent; text-align: center; }
.iacp-survey-likert-options input[type="radio"] { position: static; flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: 0 !important; accent-color: var(--member-accent); }
.iacp-survey-likert-options .radio:has(input:checked) { background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }
.iacp-survey-note { grid-column: 1 / -1; border-top: 1px solid #e5dfdb; background: #fafbf3; }
.iacp-survey-note summary { padding: .6rem .8rem; color: var(--member-accent-dark); font-weight: 700; cursor: pointer; }
.iacp-survey-note summary:hover,
.iacp-survey-note summary:focus-visible { background: var(--member-accent-soft); }
.iacp-survey-note > div { padding: 0 .8rem .8rem; }
.iacp-survey-note .survey-textarea { min-height: 5.5rem; }
.iacp-survey-salary { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: .8rem; padding: .8rem; border-radius: 8px; background: #faf8f6; }
.iacp-survey-salary label { display: inline-flex; align-items: center; gap: .45rem; margin: 0; font-weight: 700; }
.iacp-survey-salary .survey-text-input { width: 9rem; }
.iacp-survey-subquestion { margin-top: .8rem; padding: .8rem; border-left: 4px solid var(--member-accent); background: #faf8f6; }
.iacp-survey-subquestion .journal-field-label { margin-top: 0; }
.iacp-survey-subquestion .prehire-survey-options { margin-bottom: 0; }
.iacp-survey-detail-page .member-info-card { margin-bottom: 0; }
.iacp-survey-detail-page .survey-form.is-readonly .iacp-survey-likert-options { pointer-events: none; }

/* 大專青年預聘－就業追蹤同意書：桌機模擬 A4 文件，行動版維持可閱讀文件流。 */
.employment-consent-shell { padding: 1.5rem 0 0; }
.employment-consent-paper {
    width: min(100%, 52.5rem);
    margin: 0 auto;
    padding: 4.5rem 4.75rem;
    border: 1px solid #d5cec8;
    background: #fff;
    color: #211d1a;
    box-shadow: 0 10px 30px rgba(66, 45, 34, .16);
    font-family: "DFKai-SB", "BiauKai", "標楷體", serif;
    font-size: 1.25rem;
    line-height: 2;
}
.employment-consent-paper__header { margin-bottom: 3rem; text-align: center; }
.employment-consent-paper__header p { margin: 0; font-size: 1.45rem; letter-spacing: .15em; }
.employment-consent-paper__header h2 { margin: .35rem 0 0; color: #211d1a; font-family: inherit; font-size: 2rem; font-weight: 700; letter-spacing: .28em; }
.employment-consent-paper__paragraph { margin: 0; text-align: justify; text-indent: 2em; }
.affidavit-letter-content { display: grid; gap: 1rem; margin: 0; padding-left: 2.2em; text-align: justify; }
.affidavit-letter-content li { padding-left: .25em; }
.affidavit-letter-page .employment-consent-choice label { flex: 1 1 100%; }
.employment-consent-paper__name { display: inline-block; min-width: 9em; margin: 0 .2em; border-bottom: 1px solid #3d3732; text-align: center; text-indent: 0; }
.employment-consent-paper__recipient { margin: 2.5rem 0; }
.employment-consent-paper__recipient p { margin: .15rem 0; }
.employment-consent-choice { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 2.5rem 0; padding: 1rem 1.25rem; border: 1px solid #aaa19a; }
.employment-consent-choice legend { width: auto; margin: 0; padding: 0 .5rem; color: #211d1a; font-family: inherit; font-size: 1.1rem; }
.employment-consent-choice label { display: inline-flex; align-items: center; gap: .55rem; margin: 0; cursor: pointer; }
.employment-consent-choice input { width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--member-accent-dark); }
.employment-consent-choice:disabled label { cursor: default; }
.employment-consent-signature { display: grid; gap: 1.25rem; margin-top: 3.5rem; }
.employment-consent-signature__row { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); align-items: center; }
.employment-consent-signature__value { min-height: 2.5rem; }
.employment-consent-signature__value img { display: block; width: auto; max-width: 18rem; max-height: 7rem; object-fit: contain; }
.employment-consent-signature__blank { display: block; width: min(100%, 18rem); height: 2.5rem; border-bottom: 1px solid #3d3732; }
.employment-consent-actions { justify-content: center; }
.employment-consent-status { width: min(100%, 52.5rem); margin: 0 auto 1.5rem; padding: .7rem 1rem; border: 1px solid #b9c584; border-radius: 8px; background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; text-align: center; }

/* 青年就業旗艦線上切結書：已簽署後的列印操作置於狀態提示列右側。 */
.affidavit-doc__header { position: relative; display: flex; align-items: center; justify-content: center; min-height: 3.25rem; margin: 0 0 1.6rem; padding: 0 12.5rem .8rem; border-bottom: 2px solid #c44b54; }
.affidavit-doc__header .affidavit-doc__title { margin: 0; padding: 0; border: 0; }
.affidavit-doc__header .affidavit-doc__title p { margin: 0; }
.affidavit-doc__title-actions { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.affidavit-doc__print-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.5rem; padding: .45rem .9rem; border: 1px solid #9a552d; border-radius: 6px; background: #fff; color: #7d2c18; font-family: inherit; font-size: 1rem; font-weight: 700; line-height: 1.2; box-shadow: 0 1px 3px rgba(72,37,22,.2); transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.affidavit-doc__print-button:hover { background: #fff1e8; color: #6b2415; box-shadow: 0 3px 7px rgba(72,37,22,.25); }
.affidavit-doc__print-button:focus-visible { outline: 3px solid rgba(154,85,45,.3); outline-offset: 2px; }

.youth-affidavit-paper { font-size: 1.12rem; }
.youth-affidavit-status { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; }
.youth-affidavit-status p { margin: 0; }
.youth-affidavit-status .affidavit-doc__print-button { flex: 0 0 auto; }
.youth-affidavit-paper__header { display: flex; align-items: center; justify-content: center; min-height: 5rem; }
.youth-affidavit-paper__heading { text-align: center; }
.youth-affidavit-content { line-height: 1.85; }
.youth-affidavit-confirmations { display: grid; gap: .7rem; margin-top: 1rem; }
.youth-affidavit-confirmations label { display: flex; align-items: flex-start; gap: .65rem; margin: 0; padding: .7rem .8rem; border: 1px solid #d9d1cb; border-radius: 8px; background: #faf9f7; font-family: inherit; font-size: 1rem; line-height: 1.65; cursor: pointer; }
.youth-affidavit-confirmations input { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; margin: .2rem 0 0; accent-color: var(--member-accent-dark); }
.youth-affidavit-choice { justify-content: center; }
.youth-affidavit-page input:disabled { opacity: 1; cursor: default; }

@media (max-width: 767.98px) {
    .affidavit-doc__header { align-items: stretch; flex-direction: column; gap: .75rem; padding: 0 0 .9rem; }
    .affidavit-doc__title-actions { position: static; width: 100%; transform: none; }
    .affidavit-doc__print-button { width: 100%; }
    .youth-affidavit-status { align-items: stretch; flex-direction: column; }
    .youth-affidavit-status .affidavit-doc__print-button { width: 100%; }
    .youth-affidavit-confirmations label { padding: .65rem; }
}

/* 後台維護型計畫簡介：保留原始內容，提供一致的閱讀與 RWD 外框。 */
.plan-cms-sections { margin-top: 1rem; }
.plan-cms-content { color: #40332f; font-size: 1rem; line-height: 1.85; overflow-wrap: anywhere; }
.plan-cms-content > :first-child { margin-top: 0 !important; }
.plan-cms-content > :last-child { margin-bottom: 0 !important; }
.plan-cms-content img { max-width: 100% !important; height: auto !important; }
.plan-cms-content table { display: block; width: 100% !important; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.plan-cms-content th,
.plan-cms-content td { min-width: 7rem; padding: .55rem .65rem; border: 1px solid #ded6cf; vertical-align: top; }
.plan-cms-content th { background: #7d2c18; color: #fff; }
.plan-cms-content tbody tr:nth-child(even) td { background: #faf5ef; }
.plan-cms-content a { overflow-wrap: anywhere; }
.plan-content-empty { margin: 0; padding: 2rem 1rem; color: #746961; text-align: center; }
.plan-download-frame { display: block; width: 100%; min-height: 24rem; border: 0; background: #fff; }

/* 產學攜手合作 2.0－訓練生雙週誌明細。 */
.iacp-journal-entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.iacp-journal-detail-page textarea { width: 100%; min-height: 8rem; padding: .7rem .8rem; border: 1px solid #c8bdb5; border-radius: 8px; color: var(--text); font: inherit; resize: vertical; }
.iacp-journal-detail-page textarea:disabled { background: #f5f3f1; color: #554a45; opacity: 1; }
.iacp-attendance-status { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: .7rem 1rem; border: 1px solid #dce1c4; border-radius: 8px; background: #fafbf3; }
.iacp-attendance-status span { color: var(--member-accent-dark); font-weight: 700; }
.iacp-score-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 0; }
.iacp-score-grid > div { overflow: hidden; border: 1px solid #dce1c4; border-radius: 10px; background: #fff; }
.iacp-score-grid dt { padding: .65rem .8rem; background: #fafbf3; color: var(--member-accent-dark); font-weight: 700; }
.iacp-score-grid dd { margin: 0; padding: .75rem .8rem; font-size: 1.1rem; font-weight: 700; text-align: center; }
.iacp-branch-review { grid-template-columns: 1fr; margin-top: 0; }
.btn-table {
    min-height: 2.4rem;
    padding: .35rem .85rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background: #fff;
    color: #5f4e46;
    font-weight: 700;
    white-space: nowrap;
}
.btn.btn-table {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 2rem;
    margin: 0;
    padding: .2rem .7rem;
    border-radius: 999px;
    font-size: .95rem;
    line-height: 1.4;
    vertical-align: middle;
    box-shadow: none;
}
.btn-table--primary {
    border-color: var(--member-accent, #667600);
    background: var(--member-accent, #667600);
    color: #fff;
}
.btn-table:hover,
.btn-table:focus-visible {
    background: var(--member-accent-dark, #4d5134);
    color: #fff;
    text-decoration: none;
}
.key-employability-table { width: 100%; min-width: 0; table-layout: fixed; }
.key-employability-table th,
.key-employability-table td { padding: .7rem .55rem; overflow-wrap: anywhere; }
.key-employability-table th:nth-child(1) { width: 6%; }
.key-employability-table th:nth-child(2) { width: 8%; }
.key-employability-table th:nth-child(3) { width: 15%; }
.key-employability-table th:nth-child(4) { width: 16%; }
.key-employability-table th:nth-child(5) { width: 16%; }
.key-employability-table th:nth-child(6) { width: 10%; }
.key-employability-table th:nth-child(7) { width: 13%; }
.key-employability-table th:nth-child(8) { width: 9%; }
.key-employability-table th:nth-child(9) { width: 7%; }
.key-employability-table td:nth-child(1),
.key-employability-table td:nth-child(2),
.key-employability-table td:nth-child(6),
.key-employability-table td:nth-child(7),
.key-employability-table td:nth-child(8),
.key-employability-table td:nth-child(9) { text-align: center; }
/* 關鍵就業力課程問卷：行動版沿用 Design Baseline 卡片列表。 */
@media (max-width: 767.98px) {
    .key-employability-survey-list-page .course-table-wrap {
        overflow: visible;
        background: transparent;
        box-shadow: none;
    }
    .key-employability-table,
    .key-employability-table tbody,
    .key-employability-table tr,
    .key-employability-table td {
        display: block;
        width: 100%;
        min-width: 0;
    }
    .key-employability-table thead { display: none; }
    .key-employability-table tbody tr {
        margin-bottom: 1rem;
        overflow: hidden;
        border: 1px solid #ead8c8;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 10px rgba(128,82,47,.06);
    }
    .key-employability-table tbody td {
        display: grid;
        grid-template-columns: 8.5rem minmax(0, 1fr);
        gap: .75rem;
        padding: .6rem .85rem;
        border-bottom: 1px solid #f2e6d5;
        background: #fff !important;
        white-space: normal;
        overflow-wrap: anywhere;
        text-align: left !important;
    }
    .key-employability-table tbody td::before {
        content: attr(data-label);
        color: var(--member-accent-dark);
        font-weight: 700;
    }
    .key-employability-table tbody td:last-child {
        align-items: center;
        border-bottom: 0;
    }
    .key-employability-table tbody td[colspan] {
        display: block;
        text-align: center !important;
    }
    .key-employability-table tbody td[colspan]::before { content: none; }
    .key-employability-table .btn-table { width: 100%; }
}
.stay-apply-table { width: 100%; min-width: 68rem; }
.stay-apply-table th,
.stay-apply-table td { padding: .65rem 1rem; vertical-align: middle; }
.stay-apply-table td:nth-child(1),
.stay-apply-table td:nth-child(2),
.stay-apply-table td:nth-child(5),
.stay-apply-table td:nth-child(6),
.stay-apply-table td:nth-child(7),
.stay-apply-table td:nth-child(8) { text-align: center; }
.stay-apply-table th:nth-child(3),
.stay-apply-table td:nth-child(3),
.stay-apply-table th:nth-child(4),
.stay-apply-table td:nth-child(4) { text-align: left; }
.stay-apply-list-page .stay-apply-table .btn-table { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 4.75rem; min-height: 2.5rem; margin: 0; padding: .4rem .9rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-size: .95rem; font-weight: 700; line-height: 1.3; text-decoration: none; box-shadow: none; }
.stay-apply-list-page .stay-apply-table .btn-table--primary { border-color: var(--member-accent); background: var(--member-accent); color: #fff; }
.stay-apply-list-page .stay-apply-table .btn-table--returned { border-color: #b65a36; background: #fff0e8; color: #8a351b; }
.stay-apply-list-page .stay-apply-table .btn-table:hover,
.stay-apply-list-page .stay-apply-table .btn-table:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-dark); color: #fff; text-decoration: none; }
.stay-apply-list-page .stay-apply-table .btn-table--returned:hover,
.stay-apply-list-page .stay-apply-table .btn-table--returned:focus-visible { border-color: #8a351b; background: #8a351b; color: #fff; }
.stay-status--empty {
    border-color: #aaa;
    background: #fff;
    color: #666;
}
.stay-status--review {
    border-color: #c99336;
    background: #fff4d8;
    color: #78500c;
}
.stay-status--approved {
    border-color: var(--member-accent);
    background: var(--member-accent-soft);
    color: var(--member-accent-dark);
}
.stay-status--rejected {
    border-color: #b74a4a;
    background: #fff0f0;
    color: #8b2525;
}
.stay-status--returned {
    border-color: #b65a36;
    background: #fff0e8;
    color: #8a351b;
}
.btn-table--returned {
    border-color: #b65a36;
    background: #fff0e8;
    color: #8a351b;
}
.btn-table--returned:hover,
.btn-table--returned:focus-visible {
    border-color: #8a351b;
    background: #8a351b;
    color: #fff;
}

/* 學員留任獎勵申請書內容頁。 */
.stay-apply-detail-page .member-info-card { margin-bottom: 1rem; }
.stay-apply-info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.registration-static-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 0 1rem;
    overflow: hidden;
    border: 1px solid #e3dcd7;
    border-radius: 10px;
}
.registration-static-grid > div {
    display: grid;
    grid-template-columns: minmax(7rem, .8fr) minmax(0, 2fr);
    min-width: 0;
    border-top: 1px solid #e3dcd7;
    border-left: 1px solid #e3dcd7;
}
.registration-static-grid > div:nth-child(-n + 2) { border-top: 0; }
.registration-static-grid > div:nth-child(odd) { border-left: 0; }
.registration-static-grid > .registration-static-grid__full { grid-column: 1 / -1; border-left: 0; }
.registration-static-grid dt,
.registration-static-grid dd { margin: 0; padding: .7rem .85rem; }
.registration-static-grid dt { background: #fafbf3; color: var(--member-accent-dark); font-weight: 700; }
.registration-static-grid dd { min-width: 0; overflow-wrap: anywhere; }
.stay-form-fieldset {
    grid-column: 1 / -1;
    margin: 0;
    padding: 1rem;
    border: 1px solid #e3dcd7;
    border-radius: 10px;
    background: #fff;
}
.stay-form-fieldset legend {
    float: left;
    width: 100%;
    margin: 0 0 .65rem;
    padding: 0;
    color: #5e3927;
    border: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.6;
}
.stay-form-fieldset legend + * { clear: both; }
.stay-form-fieldset > p { margin: 0 0 .75rem; }
.registration-choice-grid { grid-template-columns: repeat(2, minmax(0, 12rem)); margin-bottom: .85rem; }
.stay-remark { min-height: 7rem; }
.application-form-page .registration-field input,
.application-form-page .registration-field select,
.application-form-page .survey-textarea { min-height: 2.75rem; margin: 0; padding: .65rem .8rem; border: 1px solid #aaa197; border-radius: 8px; background: #fff; color: var(--text); font: inherit; box-shadow: none; }
.application-form-page .registration-field input:focus,
.application-form-page .registration-field select:focus,
.application-form-page .survey-textarea:focus { border-color: var(--member-accent); outline: 3px solid rgba(102,118,0,.18); outline-offset: 0; box-shadow: none; }
.application-form-page .survey-option { align-items: center; margin: 0; font-size: 1rem; line-height: 1.5; }
.application-form-page .survey-option input[type="radio"] { flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--member-accent); }
.application-form-page .survey-option:has(input:checked) { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }
.registration-date-parts { display: flex; align-items: center; gap: .45rem; }
.registration-date-parts input { width: 6rem !important; }
.application-form-page .registration-field .datepicker-outline.input-group {
    display: flex;
    align-items: stretch;
    width: min(22rem, 100%);
}
.application-form-page .registration-field .datepicker-outline.input-group .form-control,
.application-form-page .registration-field .datepicker-outline.input-group .t-form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    min-height: 2.75rem;
    border-right: 0 !important;
    border-radius: 8px 0 0 8px !important;
}
.application-form-page .registration-field .datepicker-outline.input-group .input-group-btn { display: flex; }
.application-form-page .registration-field .datepicker-outline.input-group .open-datepicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: .5rem;
    border: 1px solid var(--member-accent) !important;
    border-left: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    background: var(--member-accent) !important;
    color: #fff !important;
    box-shadow: none;
}
.application-form-page .registration-field .datepicker-outline.input-group:focus-within .form-control,
.application-form-page .registration-field .datepicker-outline.input-group:focus-within .t-form-control { border-color: var(--member-accent); outline: 3px solid rgba(102,118,0,.18); outline-offset: 0; }
.application-form-page .registration-field .datepicker-outline.input-group .open-datepicker:hover,
.application-form-page .registration-field .datepicker-outline.input-group .open-datepicker:focus-visible { border-color: var(--member-accent-dark) !important; background: var(--member-accent-dark) !important; color: #fff !important; }
.registration-upload-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.registration-upload-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    padding: 1rem;
    border: 1px solid #e3dcd7;
    border-radius: 10px;
    background: #fff;
}
.registration-upload-card h3 { margin: 0 0 .75rem; color: var(--member-accent-dark); font-size: 1rem; }
.registration-file-input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-height: 2.75rem;
    margin: 0 0 .75rem;
    padding: .3rem;
    overflow: hidden;
    border: 1px solid #aaa197;
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    font: inherit;
}
.registration-file-input::file-selector-button,
.registration-file-input::-webkit-file-upload-button {
    min-height: 2.1rem;
    margin: 0 .65rem 0 0;
    padding: .35rem .85rem;
    border: 1px solid var(--member-accent);
    border-radius: 999px;
    background: var(--member-accent);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.registration-file-input:hover::file-selector-button,
.registration-file-input:focus-visible::file-selector-button,
.registration-file-input:hover::-webkit-file-upload-button,
.registration-file-input:focus-visible::-webkit-file-upload-button { border-color: var(--member-accent-dark); background: var(--member-accent-dark); }
.registration-file-input:focus-visible { border-color: var(--member-accent); outline: 3px solid rgba(102,118,0,.18); outline-offset: 0; }
.registration-file-input:disabled { border-color: #d7d2cd; background: #eeece9; color: #625b56; cursor: not-allowed; }
.registration-file-input:disabled::file-selector-button,
.registration-file-input:disabled::-webkit-file-upload-button { border-color: #c4bdb7; background: #c4bdb7; color: #625b56; cursor: not-allowed; }
.registration-file-download {
    align-self: flex-start;
    min-height: 2.4rem;
    margin: auto 0 0;
    padding: .4rem .85rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background: #fff;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.registration-file-download:hover,
.registration-file-download:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-soft); color: var(--member-accent-dark); }
.registration-agreement-copy { padding: 1rem; border: 1px solid #ead8c8; border-radius: 10px; background: #fffaf6; }
.registration-agreement-copy ol { margin: 0 0 1rem; padding-left: 1.5rem; }
.registration-agreement-copy li + li { margin-top: .6rem; }
.registration-agreement-copy-choice { border-color: #d8d0ca; background: #fff; }
.registration-signature-card { padding: 1rem; }
.registration-signature-pending {
    display: grid;
    grid-template-columns: minmax(9rem, 12rem) minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}
.registration-signature-pending img { display: block; width: 100%; height: auto; }
.registration-signature-pending p { margin: 0 0 .75rem; }
.application-form-page .registration-signature-pending .btn-registration-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; margin: 0; padding: .55rem 1.15rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; box-shadow: none; }
.application-form-page .registration-signature-pending .btn-registration-secondary:hover,
.application-form-page .registration-signature-pending .btn-registration-secondary:focus-visible { border-color: var(--member-accent-dark); background: #f3f5e8; color: var(--member-accent-dark); }
.stay-submit-notice {
    flex: 1 1 100%;
    margin: 0;
    padding: .7rem 1rem;
    border: 1px solid #d5a13e;
    border-radius: 8px;
    background: #fff4d8;
    color: #78500c;
    text-align: center;
}
.application-form-page .registration-actions .btn-registration-secondary { display: inline-flex; align-items: center; justify-content: center; min-width: 10rem; min-height: 2.75rem; margin: 0; padding: .55rem 1.35rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; line-height: 1.4; text-decoration: none; box-shadow: none; }
.application-form-page .registration-actions .btn-registration-secondary:hover,
.application-form-page .registration-actions .btn-registration-secondary:focus-visible { border-color: var(--member-accent-dark); background: #f3f5e8; color: var(--member-accent-dark); text-decoration: none; box-shadow: 0 4px 10px rgba(79,93,0,.14); }
.application-form-page .registration-actions .btn-registration-primary { display: inline-flex; align-items: center; justify-content: center; min-width: 10rem; min-height: 2.75rem; margin: 0; padding: .55rem 1.35rem; border: 1px solid var(--registration-primary, #aa4b8f); border-radius: 999px; background: var(--registration-primary, #aa4b8f); color: #fff; font-weight: 700; line-height: 1.4; text-decoration: none; box-shadow: none; }
.application-form-page .registration-actions .btn-registration-primary:hover,
.application-form-page .registration-actions .btn-registration-primary:focus-visible { border-color: var(--registration-primary-dark, #81336c); background: var(--registration-primary-dark, #81336c); color: #fff; text-decoration: none; box-shadow: 0 5px 12px rgba(129,51,108,.2); }
.application-form-page .registration-actions .btn-registration-primary:disabled,
.application-form-page .registration-actions .btn-registration-primary[disabled] { border-color: #cfc8c2; background: #cfc8c2; color: #655f5a; opacity: 1; cursor: not-allowed; box-shadow: none; }
.application-form-page .registration-actions .btn-member-primary { display: inline-flex; align-items: center; justify-content: center; min-width: 10rem; min-height: 2.75rem; margin: 0; padding: .55rem 1.35rem; border: 1px solid var(--member-accent); border-radius: 999px; background: var(--member-accent); color: #fff; font-weight: 700; line-height: 1.4; box-shadow: none; }
.application-form-page .registration-actions .btn-member-primary:hover,
.application-form-page .registration-actions .btn-member-primary:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-dark); color: #fff; box-shadow: 0 5px 12px rgba(79,93,0,.24); }

@media (max-width: 899.98px) {
    .survey-likert {
        display: grid;
        gap: .75rem;
        overflow: visible;
        border: 0;
        border-radius: 0;
    }
    .survey-likert-header { display: none; }
    .survey-likert-group {
        border: 1px solid #d5dcb1;
        border-radius: 8px;
    }
    .survey-likert-row {
        grid-template-columns: 1fr;
        gap: .4rem;
        min-width: 0;
        padding: .85rem;
        border: 1px solid #d8d0ca;
        border-radius: 10px;
        background: #fff;
    }
    .survey-likert-row + .survey-likert-row { border-top: 1px solid #d8d0ca; }
    .survey-likert-row::before {
        display: block;
        margin-bottom: .35rem;
        padding: 0;
        color: var(--member-accent-dark);
        font-weight: 700;
    }
    .survey-likert-row > label {
        justify-content: flex-start;
        gap: .55rem;
        min-height: 2.6rem;
        padding: .5rem .65rem;
        border: 1px solid #ded8d3;
        border-radius: 8px;
    }
    .survey-likert-row > label:hover,
    .survey-likert-row > label:focus-within {
        border-color: var(--member-accent);
        background: var(--member-accent-soft);
    }
    .survey-likert-row input { flex: 0 0 auto; margin: 0; }
    .survey-likert-row label .visually-hidden {
        position: static !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        clip-path: none !important;
        white-space: normal !important;
    }
}

@media (max-width: 767.98px) {
    .key-course-info-grid > div:nth-child(-n + 4) { border-bottom: 0; }
    .member-info-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-info-card__grid > div:nth-child(odd) { border-left: 0; }
    .member-info-card__grid > div:nth-child(n + 3) { border-top: 1px solid #e3dcd7; }
    .survey-options { grid-template-columns: 1fr; }
    .prehire-survey-info-grid { grid-template-columns: 1fr; }
    .prehire-survey-info-grid > div,
    .prehire-survey-info-grid > div:nth-child(n + 5),
    .prehire-survey-info-grid__wide:nth-child(5) { grid-column: auto; border-top: 1px solid #e3dcd7; border-left: 0; }
    .prehire-survey-info-grid > div:first-child { border-top: 0; }
    .prehire-survey-options { display: grid; grid-template-columns: 1fr; }
    .prehire-survey-options label,
    .prehire-survey-options .prehire-radio-option { width: 100% !important; }
    .prehire-student-survey-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .prehire-student-survey-table,
    .prehire-student-survey-table tbody,
    .prehire-student-survey-table tr,
    .prehire-student-survey-table td { display: block; width: 100%; min-width: 0; }
    .prehire-student-survey-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .prehire-student-survey-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .prehire-student-survey-table td { display: grid; grid-template-columns: minmax(7rem, 38%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left !important; }
    .prehire-student-survey-table td:last-child { border-bottom: 0; }
    .prehire-student-survey-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .prehire-student-survey-table .course-table__empty { display: block; text-align: center !important; }
    .prehire-student-survey-table .course-table__empty::before { content: none; }
    .prehire-student-survey-list-page .prehire-student-survey-table .btn-table { width: 100%; }
    .prehire-student-survey-detail .prehire-survey-likert-row { grid-template-columns: 1fr; }
    .prehire-student-survey-detail .prehire-survey-likert-row > legend { display: block; width: 100%; padding: 0 0 .45rem; border: 0; color: var(--member-accent-dark); }
    .prehire-student-survey-detail .prehire-survey-likert-options .radio > label { justify-content: flex-start; gap: .5rem; width: 100% !important; min-height: 2.6rem; border: 1px solid #ded8d3; border-radius: 8px; font-size: 1rem; line-height: 1.5; text-align: left; }
    .iacp-survey-info-grid { grid-template-columns: 1fr; }
    .iacp-survey-info-grid > div { border-top: 1px solid #e3dcd7; border-left: 0; }
    .iacp-survey-info-grid > div:first-child { border-top: 0; }
    .iacp-survey-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .iacp-survey-table,
    .iacp-survey-table tbody,
    .iacp-survey-table tr,
    .iacp-survey-table td { display: block; width: 100%; min-width: 0; }
    .iacp-survey-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .iacp-survey-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .iacp-survey-table td { display: grid; grid-template-columns: minmax(7rem, 38%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left !important; }
    .iacp-survey-table td:last-child { border-bottom: 0; }
    .iacp-survey-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .iacp-survey-table .course-table__empty { display: block; text-align: center !important; }
    .iacp-survey-table .course-table__empty::before { content: none; }
    .iacp-survey-list-page .iacp-survey-table .btn-table { width: 100%; }
    .iacp-survey-likert-row { grid-template-columns: 1fr; }
    .iacp-survey-likert-row > legend { display: block; width: 100%; padding: 0 0 .45rem; border: 0; color: var(--member-accent-dark); }
    .iacp-survey-likert-options { grid-template-columns: 1fr; gap: .4rem; }
    .iacp-survey-likert-options .radio { justify-content: flex-start; width: 100% !important; border: 1px solid #ded8d3; border-radius: 8px; }
    .iacp-survey-likert-options .radio > label { justify-content: flex-start; min-height: 2.6rem; text-align: left; }
    .iacp-survey-note { overflow: hidden; border: 1px solid #dce1c4; border-radius: 8px; }
    .iacp-survey-salary { display: grid; grid-template-columns: 1fr; }
    .iacp-survey-salary > span { display: none; }
    .iacp-survey-salary label { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; }
    .iacp-survey-salary .survey-text-input { width: 100%; }
    .employment-consent-shell { padding-top: .75rem; }
    .employment-consent-paper { padding: 2rem 1.25rem 2.5rem; font-size: 1.05rem; line-height: 1.85; }
    .employment-consent-paper__header { margin-bottom: 2rem; }
    .employment-consent-paper__header p { font-size: 1.15rem; }
    .employment-consent-paper__header h2 { font-size: 1.55rem; letter-spacing: .16em; }
    .employment-consent-paper__name { min-width: 7em; }
    .employment-consent-choice { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 2rem 0; }
    .affidavit-letter-page .employment-consent-choice { grid-template-columns: 1fr; }
    .employment-consent-choice label { justify-content: center; min-height: 2.75rem; border: 1px solid #d8d0ca; border-radius: 8px; background: #fff; }
    .employment-consent-signature { margin-top: 2.5rem; }
    .employment-consent-signature__row { grid-template-columns: 7rem minmax(0, 1fr); }
    .employment-consent-signature__value img { max-width: 100%; }
    .plan-cms-content { font-size: .96rem; }
    .plan-cms-content th,
    .plan-cms-content td { min-width: 6.5rem; padding: .45rem .5rem; }
    .plan-download-frame { min-height: 30rem; }
    .iacp-journal-entry-grid,
    .iacp-score-grid { grid-template-columns: 1fr; }
    .iacp-attendance-status { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .stay-apply-info-grid { grid-template-columns: 1fr; }
    .stay-apply-info-grid > div { border-top: 1px solid #e3dcd7; border-left: 0; }
    .stay-apply-info-grid > div:first-child { border-top: 0; }
    .registration-static-grid { grid-template-columns: 1fr; }
    .registration-static-grid > div,
    .registration-static-grid > div:nth-child(-n + 2) { border-top: 1px solid #e3dcd7; border-left: 0; }
    .registration-static-grid > div:first-child { border-top: 0; }
    .registration-static-grid > .registration-static-grid__full { grid-column: auto; }
    .registration-upload-grid,
    .registration-signature-pending { grid-template-columns: 1fr; }
    .registration-choice-grid { grid-template-columns: 1fr; }
    .registration-date-parts { flex-wrap: wrap; }
    .stay-apply-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .stay-apply-table,
    .stay-apply-table tbody,
    .stay-apply-table tr,
    .stay-apply-table td { display: block; width: 100%; min-width: 0; }
    .stay-apply-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .stay-apply-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .stay-apply-table td { display: grid; grid-template-columns: minmax(7rem, 38%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left !important; }
    .stay-apply-table td:last-child { border-bottom: 0; }
    .stay-apply-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .stay-apply-table .course-table__empty { display: block; text-align: center !important; }
    .stay-apply-table .course-table__empty::before { content: none; }
    .stay-apply-list-page .stay-apply-table .btn-table { width: 100%; }
    .application-form-page .registration-actions .btn-registration-secondary { width: 100%; }
    .application-form-page .registration-actions .btn-registration-primary { width: 100%; }
}
.status-badge,
.comment-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.75rem;
    padding: .18rem .65rem;
    border: 1px solid #aaa;
    border-radius: 7px;
    background: #fff;
    color: #666;
    font-size: .88rem;
    font-weight: 700;
    white-space: nowrap;
}
.status-badge--complete,
.comment-status.is-complete {
    border-color: var(--member-accent);
    background: var(--member-accent-soft);
    color: var(--member-accent-dark);
}
.status-badge--pending {
    border-color: #aaa;
    background: #fff;
    color: #666;
}
.status-badge--review {
    border-color: #c88719;
    background: #fff4d6;
    color: #76500a;
}
.status-badge--returned {
    border-color: #bd4c43;
    background: #fff0ee;
    color: #8c2f28;
}
.btn-table--refill {
    border-color: #bd4c43;
    background: #bd4c43;
    color: #fff;
}
.btn-table--refill:hover,
.btn-table--refill:focus-visible { background: #8c2f28; color: #fff; }
.journal-case-summary {
    overflow: hidden;
    border: 1px solid #d9d1cb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(80, 55, 40, .1);
}
.journal-case-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid #dce1c4;
    background: #fafbf3;
    color: var(--member-accent-dark);
    font-weight: 700;
}
.journal-case-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
}
.journal-case-grid > div {
    min-width: 0;
    padding: .8rem 1rem;
    border-left: 1px solid #e3dcd7;
}
.journal-case-grid > div:first-child { border-left: 0; }
.journal-case-grid dt {
    margin-bottom: .2rem;
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}
.journal-case-grid dd {
    min-width: 0;
    margin: 0;
    color: var(--text);
    font-weight: 700;
    overflow-wrap: anywhere;
}
.journal-entry-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr);
    align-items: start;
    gap: 1rem;
}
.journal-entry-grid .detail-section { height: 100%; }
.journal-form-panel textarea {
    width: 100%;
    min-width: 0;
    min-height: 13rem;
    padding: .75rem .9rem;
    border: 1px solid #aa9b91;
    border-radius: 10px;
    background: #fff;
    color: var(--text);
    font: inherit;
    resize: vertical;
}
.journal-form-panel textarea:disabled,
.mentor-journal-summary textarea:disabled,
.journal-accordion__panel textarea:disabled {
    background: #f5f3f1;
    color: #554a45;
    opacity: 1;
}
.member-mode.journal-detail-page .journal-form-panel textarea:focus {
    border-color: var(--member-accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(111,128,0,.14);
}
.journal-field-label {
    display: block;
    margin-bottom: .45rem;
    color: #5e3927;
    font-weight: 700;
}
.journal-field-hint {
    margin: .4rem 0 0;
    color: var(--muted);
    font-size: .92rem;
}
.signature-status-card {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 1rem;
    padding: .85rem;
    border: 1px solid #dce1c4;
    border-radius: 14px;
    background: #fafbf3;
}
.signature-empty-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    aspect-ratio: 3 / 1;
    padding: .75rem;
    border: 2px dashed #b9aea7;
    border-radius: 10px;
    background: #fff;
    text-align: center;
}
.signature-empty-placeholder.has-signature {
    padding: .5rem;
    border-style: solid;
    border-color: #d7cec8;
}
.signature-status-label {
    display: block;
    margin-bottom: .2rem;
    color: var(--muted);
    font-size: .9rem;
}
.signature-status-card strong {
    color: var(--member-accent-dark);
    font-size: 1.15rem;
}
.signature-preview { width: 100%; margin: 0; text-align: center; }
.signature-preview img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 1;
    object-fit: contain;
}
.signature-preview figcaption {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .82rem;
}
.signature-actions,
.journal-submit-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
}
.signature-actions .btn { flex: 1 1 100%; min-width: 0; }
.signature-actions.is-complete .btn { flex-basis: calc(50% - .4rem); }
.journal-submit-actions { margin: 1.5rem 0; }
.journal-detail-page .journal-submit-actions .btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 10rem;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 1.35rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background: #fff;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
}
.journal-detail-page .journal-submit-actions .btn-secondary:hover,
.journal-detail-page .journal-submit-actions .btn-secondary:focus-visible {
    border-color: #8a756a;
    background: #f5eee9;
    color: #493a34;
    box-shadow: none;
}
.mentor-journal-summary { margin: 0 0 1rem; }
.mentor-journal-summary > div {
    display: grid;
    grid-template-columns: minmax(10rem, 1fr) minmax(0, 3fr);
    border: 1px solid #e3dcd7;
}
.mentor-journal-summary > div + div { border-top: 0; }
.mentor-journal-summary dt,
.mentor-journal-summary dd { margin: 0; padding: .75rem 1rem; }
.mentor-journal-summary dt {
    background: #fafbf3;
    color: var(--member-accent-dark);
    font-weight: 700;
}
.mentor-journal-summary dd { min-width: 0; }
.mentor-journal-summary textarea,
.journal-accordion__panel textarea {
    width: 100%;
    min-height: 7rem;
    padding: .7rem .8rem;
    border: 1px solid #c8bdb5;
    border-radius: 8px;
    color: var(--text);
    font: inherit;
    resize: vertical;
}
.journal-accordion { display: grid; gap: .75rem; }
.journal-accordion__item {
    overflow: hidden;
    border: 1px solid #ddd4ce;
    border-radius: 12px;
    background: #fff;
}
.journal-accordion__item h2,
.journal-accordion__item h3 { margin: 0; font-size: inherit; line-height: inherit; font-weight: inherit; }
.journal-accordion__button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 3.5rem;
    padding: .7rem 1rem;
    border: 0;
    background: #fff8f3;
    color: #633f30;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.journal-accordion__button:hover,
.journal-accordion__button:focus-visible { background: #fff0e8; }
.journal-accordion__icon {
    width: .7rem;
    height: .7rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s ease;
}
.journal-accordion__button[aria-expanded="true"] .journal-accordion__icon { transform: rotate(225deg); }
.journal-accordion__panel { padding: 1rem 1.25rem; border-top: 1px solid #e4ddd8; }

@media (max-width: 767.98px) {
    .journal-entry-grid { grid-template-columns: 1fr; }
    .journal-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journal-case-grid > div:nth-child(3) { border-left: 0; }
    .journal-case-grid > div:nth-child(n + 3) { border-top: 1px solid #e3dcd7; }
    .journal-submit-actions .btn { width: 100%; }
    .journal-accordion__button { grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
    .journal-accordion__button .comment-status { grid-column: 1; justify-self: start; }
    .journal-accordion__icon { grid-column: 2; grid-row: 1 / span 2; }

    /* 雙週誌列表改為單筆卡片，避免九欄表格需水平捲動。 */
    .journal-list-page .course-table-wrap { overflow: visible !important; box-shadow: none; }
    .journal-list-page .journal-table,
    .journal-list-page .journal-table tbody,
    .journal-list-page .journal-table tr,
    .journal-list-page .journal-table td { display: block; width: 100%; min-width: 0 !important; }
    .journal-list-page .journal-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .journal-list-page .journal-table tr {
        overflow: hidden;
        margin-bottom: 1rem;
        border: 1px solid #dce1c4;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 10px rgba(86, 55, 36, .09);
    }
    .journal-list-page .journal-table td,
    .journal-list-page .journal-table td:nth-child(6),
    .journal-list-page .journal-table td:nth-child(7),
    .journal-list-page .journal-table td:nth-child(8) {
        display: grid;
        grid-template-columns: minmax(7.5rem, 36%) minmax(0, 1fr);
        gap: .75rem;
        padding: .65rem .8rem;
        border: 0;
        border-bottom: 1px solid #eee4dc;
        background: #fff;
        text-align: left;
    }
    .journal-list-page .journal-table td:last-child { border-bottom: 0; }
    .journal-list-page .journal-table td::before {
        content: attr(data-label);
        color: var(--member-accent-dark);
        font-weight: 700;
    }
    .journal-list-page .journal-table .course-table__empty { display: block; text-align: center; }
    .journal-list-page .journal-table .course-table__empty::before { content: none; }
    .journal-list-page .journal-table .journal-review-cell { align-items: flex-start; min-width: 0; }
    .journal-list-page .journal-table .btn-table { width: 100%; }
}
@media (max-width: 575.98px) {
    .mentor-journal-summary > div,
    .journal-case-grid { grid-template-columns: 1fr; }
    .journal-case-grid > div { border-top: 1px solid #e3dcd7; border-left: 0; }
    .journal-case-grid > div:first-child { border-top: 0; }
}

/* 大專青年預聘計畫雙週誌：沿用既有 journal 元件，保留本計畫特有欄位。 */
.prehire-journal-table th,
.prehire-journal-table td { text-align: center; vertical-align: middle; }
.prehire-journal-table td:nth-child(6) { text-align: left; }
.prehire-journal-case-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.journal-evidence-grid,
.journal-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem
}
.journal-evidence-card {
    min-width: 0;
    padding: 1rem;
    border: 1px solid #e3dcd7;
    border-radius: 12px;
    background: #fffaf6
}
.journal-evidence-card h3 { margin: 0 0 .65rem; color: #76570b; font-size: 1rem; }
.journal-evidence-card p { margin: .35rem 0; overflow-wrap: anywhere; }
.journal-evidence-card label { display: block; margin: .7rem 0 .35rem; font-weight: 700; }
.journal-evidence-card input[type="file"] { width: 100%; max-width: 100%; }
.journal-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.journal-review-grid label { display: block; margin-bottom: .4rem; color: #633f30; font-weight: 700; }
.journal-review-grid textarea { width: 100%; min-height: 8rem; padding: .7rem .8rem; border: 1px solid #c8bdb5; border-radius: 8px; resize: vertical; }

@media (max-width: 900px) {
    .prehire-journal-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journal-evidence-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .prehire-journal-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .prehire-journal-table,
    .prehire-journal-table tbody,
    .prehire-journal-table tr,
    .prehire-journal-table td { display: block; width: 100%; min-width: 0; }
    .prehire-journal-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap
    }
    .prehire-journal-table tr { overflow: hidden; margin-bottom: .85rem; border: 1px solid #e3dcd7; border-radius: 12px; background: #fff; }
    .prehire-journal-table td,
    .prehire-journal-table td:nth-child(6) {
        display: grid;
        grid-template-columns: 6.5rem minmax(0, 1fr);
        gap: .75rem;
        padding: .65rem .8rem;
        border: 0;
        border-top: 1px solid #eee2d8;
        text-align: left
    }
    .prehire-journal-table td:first-child { border-top: 0; }
    .prehire-journal-table td::before { content: attr(data-label); color: #76570b; font-weight: 700; }
    .prehire-journal-table .course-table__empty { display: block; text-align: center; }
    .prehire-journal-table .course-table__empty::before { content: none; }
    .journal-review-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .prehire-journal-case-grid { grid-template-columns: 1fr; }
}


/* 青年線上報名：延伸合作單位查詢元件，保留多層職類與地區連動選單。 */
.online-registration-search-grid .organizer-search-field:nth-child(2) { grid-column: auto; }
.online-registration-search-field--full { grid-column: 1 / -1; }
.online-registration-linked-fields { display: grid; gap: .75rem; }
.online-registration-linked-fields--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.online-registration-linked-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.online-registration-noscript { margin: .6rem 0 0; color: #6b5145; font-size: .92rem; }
.online-registration-results-table { min-width: 54rem; }
.online-registration-results-table th,
.online-registration-results-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.online-registration-results-table th:nth-child(3),
.online-registration-results-table td:nth-child(3),
.online-registration-results-table th:nth-child(4),
.online-registration-results-table td:nth-child(4) { text-align: left; }
.online-registration-results-table td a,
.online-registration-results-table td a:hover,
.online-registration-results-table td a:focus-visible {
    color: #8b2c49 !important;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.online-registration-results-table td a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.online-registration-page .result-pagination .pageLink .pageStatus { border-color: #7a2b3a; background: #7a2b3a !important; color: #fff !important; font-weight: 700; opacity: 1; }
.online-registration-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }
@media (max-width: 767.98px) {
    .online-registration-linked-fields--four,
    .online-registration-linked-fields--two { grid-template-columns: 1fr; }
    .online-registration-results .course-table-wrap { overflow: visible; box-shadow: none; }
    .online-registration-results-table,
    .online-registration-results-table tbody,
    .online-registration-results-table tr,
    .online-registration-results-table td { display: block; width: 100%; min-width: 0; }
    .online-registration-results-table thead {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }
    .online-registration-results-table tr {
        overflow: hidden; margin-bottom: 1rem; border: 1px solid #dfd2c8;
        border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86, 55, 36, .09);
    }
    .online-registration-results-table td {
        display: grid; grid-template-columns: minmax(6.5rem, 36%) 1fr; gap: .75rem;
        padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left;
    }
    .online-registration-results-table td:last-child { border-bottom: 0; }
    .online-registration-results-table td::before { content: attr(data-label); color: #76570b; font-weight: 700; }
    .online-registration-results-table .course-table__empty { display: block; text-align: center; }
    .online-registration-results-table .course-table__empty::before { content: none; }
}


/* 青年線上報名－訓練計畫明細 */
.training-plan-group + .training-plan-group { margin-top: 1.5rem; }
.training-plan-group__title {
    margin: 0;
    padding: .75rem 1rem;
    border-left: 5px solid #9b3f24;
    background: #f5e7dc;
    color: #5e3927;
    font-size: 1.1rem;
    font-weight: 700;
}
.training-plan-group .detail-list { margin-top: .75rem; }
.training-content-table { min-width: 62rem; }
.training-content-table th,
.training-content-table td { text-align: center; }
.training-content-table th:nth-child(2),
.training-content-table td:nth-child(2),
.training-content-table th:nth-child(4),
.training-content-table td:nth-child(4) { text-align: left; }
.training-plan-detail-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin-top: 1.5rem;
}
.training-plan-detail-actions .btn { min-width: 9rem; }
.training-plan-detail-actions .training-plan-return-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.75rem; padding: .55rem 1.35rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; line-height: 1.4; text-decoration: none; box-shadow: none; }
.training-plan-detail-actions .training-plan-return-button:hover,
.training-plan-detail-actions .training-plan-return-button:focus-visible { border-color: #8a756a; background: #f5eee9; color: #493a34; text-decoration: none; box-shadow: none; }

@media (max-width: 767.98px) {
    .training-plan-group__title { padding: .65rem .8rem; }
    .training-plan-detail-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .training-content-table,
    .training-content-table tbody,
    .training-content-table tr,
    .training-content-table td { display: block; width: 100%; min-width: 0; }
    .training-content-table thead {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }
    .training-content-table tr {
        overflow: hidden; margin-bottom: 1rem; border: 1px solid #dfd2c8;
        border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86, 55, 36, .09);
    }
    .training-content-table td {
        display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem;
        padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left;
    }
    .training-content-table td:last-child { border-bottom: 0; }
    .training-content-table td::before { content: attr(data-label); color: #76570b; font-weight: 700; }
    .training-content-table .course-table__empty { display: block; text-align: center; }
    .training-content-table .course-table__empty::before { content: none; }
    .training-plan-detail-actions { flex-direction: column; }
    .training-plan-detail-actions .btn { width: 100%; }
}


/* 青年就業旗艦－履歷維護／確認報名資料 */
.resume-required-note { margin: 0 0 .75rem; color: #6b5145; text-align: right; }
.resume-required-note span,
.resume-edit-page .required-field-label::after { color: #b42318; font-weight: 800; content: " *"; }
.resume-groups { display: grid; gap: 1rem; }
.resume-group { min-width: 0; }
.resume-group-content[hidden] { display: none !important; }
.resume-edit-page .registration-field__control { min-width: 0; }
.resume-edit-page .registration-field__control .form-control,
.resume-edit-page .registration-field__control input[type="text"],
.resume-edit-page .registration-field__control input[type="email"],
.resume-edit-page .registration-field__control select,
.resume-edit-page .registration-field__control textarea { max-width: 100%; }
.resume-edit-page .registration-field__control textarea { width: 100%; resize: vertical; }
.resume-edit-page .resume-autobiography { min-height: 12.5rem; }
.resume-edit-page .resume-detail-table { width: 100%; margin: .25rem 0 .75rem; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.resume-edit-page .resume-detail-table th { padding: .75rem .65rem; border: 0; background: var(--member-accent-dark); color: #fff; font-size: .95rem; line-height: 1.35; text-align: center; }
.resume-edit-page .resume-detail-table th:first-child { border-radius: .55rem 0 0; }
.resume-edit-page .resume-detail-table th:last-child { border-radius: 0 .55rem 0 0; }
.resume-edit-page .resume-detail-table td { padding: .65rem; border: 0; border-bottom: 1px solid #e7ddd5; background: #fff; }
.resume-edit-page .resume-detail-table tbody tr:nth-child(even) td { background: #faf7f3; }
.resume-edit-page .resume-detail-table th,
.resume-edit-page .resume-detail-table td { vertical-align: middle; }
.resume-edit-page .resume-detail-table .resume-table-control,
.resume-edit-page .resume-detail-table .resume-period-input { min-height: 2.5rem; margin: 0; padding: .45rem .6rem; border: 1px solid #c9b7aa; border-radius: .45rem; background: #fff; color: #40332f; font: inherit; line-height: 1.35; box-shadow: none; }
.resume-edit-page .resume-detail-table .resume-table-control { display: block; width: 100%; min-width: 0; }
.resume-edit-page .resume-detail-table .resume-table-control:focus,
.resume-edit-page .resume-detail-table .resume-period-input:focus { border-color: var(--member-accent); outline: 3px solid rgba(111, 128, 0, .16); outline-offset: 1px; box-shadow: none; }
.resume-edit-page .resume-period-column { width: 17rem; }
.resume-edit-page .resume-period-field,
.resume-edit-page .resume-duration-field { display: flex; align-items: center; gap: .35rem; white-space: nowrap; }
.resume-edit-page .resume-period-field + .resume-period-field { margin-top: .45rem; }
.resume-edit-page .resume-period-field__label { flex: 0 0 1.5rem; color: var(--member-accent-dark); font-weight: 700; text-align: center; }
.resume-edit-page .resume-detail-table .resume-period-input { display: inline-block; width: auto; min-width: 0; text-align: center; }
.resume-edit-page .resume-detail-table .resume-period-input--year { width: 4.75rem; }
.resume-edit-page .resume-detail-table .resume-period-input--month { width: 3.75rem; }
.resume-edit-page .resume-detail-table .btn-table { width: auto; min-width: 4.5rem; }
.resume-edit-page .resume-add-button { margin-top: .35rem; }

/* 舊版學歷／工作經歷表的功能欄較窄，避免全站按鈕內距使「刪除」超出並被裁切。 */
.resume-edit-page #tbEdu td:last-child .btn-search,
.resume-edit-page #tbWork td:last-child .btn-search {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin-right: 0;
    margin-left: 0;
    padding-right: .6rem !important;
    padding-left: .6rem !important;
}

.resume-edit-page .radioset { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem 1rem; }
.resume-edit-page .radioset .radio { display: inline-flex; align-items: center; margin: 0; }
.resume-edit-page .radioset label { display: inline-flex; align-items: center; gap: .4rem; margin: 0; padding: 0; font-weight: 400; }
.resume-edit-page .radioset input[type="radio"],
.resume-edit-page .radioset input[type="checkbox"] { position: static; flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: 0 !important; accent-color: #9b3f24; box-shadow: none; }
.resume-group-heading { margin: 0; }
.resume-group-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.25rem;
    padding: .8rem 1rem .8rem 1.2rem;
    border: 0;
    border-left: .4rem solid #d9692b;
    border-bottom: 1px solid #edcba7;
    border-radius: .4rem .4rem 0 0;
    background: #fff3e4;
    color: #6c3822;
    font: inherit;
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.resume-group-toggle:hover,
.resume-group-toggle:focus-visible { background: #f9e5cf; color: #5c2f1c; outline: 3px solid rgba(26,115,232,.25); outline-offset: 1px; }
.resume-group-toggle small { color: #725c50; font-size: .86rem; font-weight: 500; }
.resume-group-toggle__icon { position: relative; width: 1.1rem; height: 1.1rem; flex: 0 0 1.1rem; }
.resume-group-toggle__icon::before,
.resume-group-toggle__icon::after {
    position: absolute; top: 50%; left: 50%; width: .9rem; height: 2px;
    background: currentColor; content: ""; transform: translate(-50%, -50%);
}
.resume-group-toggle[aria-expanded="false"] .resume-group-toggle__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
.resume-form-actions { display: flex; justify-content: center; margin-top: 1.25rem; }
.resume-form-actions .btn { min-width: 10rem; }

@media (max-width: 767.98px) {
    .resume-edit-page .registration-field__control .form-control,
    .resume-edit-page .registration-field__control input[type="text"],
    .resume-edit-page .registration-field__control select,
    .resume-edit-page .registration-field__control textarea { width: 100%; }
    .resume-edit-page .resume-detail-table-wrap { overflow: visible; }
    .resume-edit-page .resume-detail-table,
    .resume-edit-page .resume-detail-table tbody,
    .resume-edit-page .resume-detail-table tr,
    .resume-edit-page .resume-detail-table td { display: block; width: 100%; min-width: 0; }
    .resume-edit-page .resume-detail-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .resume-edit-page .resume-detail-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: .7rem; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .resume-edit-page .resume-detail-table td { display: grid; grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr); gap: .65rem; padding: .65rem .8rem; border-bottom: 1px solid #eee4dc; background: #fff !important; text-align: left !important; }
    .resume-edit-page .resume-detail-table td:last-child { border-bottom: 0; }
    .resume-edit-page .resume-detail-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .resume-edit-page .resume-detail-table .resume-period-field,
    .resume-edit-page .resume-detail-table .resume-duration-field { flex-wrap: wrap; white-space: normal; }
    .resume-edit-page .resume-detail-table .btn-table { width: 100%; }
    .resume-form-actions .btn { width: 100%; }
}


/* 青年就業旗艦－報名結果查詢 */
.registration-result-search-grid .organizer-search-field:nth-child(2) { grid-column: auto; }
.registration-result-search-field--full { grid-column: 1 / -1; }
.registration-result-table { min-width: 68rem; }
.registration-result-table th,
.registration-result-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.registration-result-table th:nth-child(4),
.registration-result-table td:nth-child(4),
.registration-result-table th:nth-child(5),
.registration-result-table td:nth-child(5),
.registration-result-table th:nth-child(6),
.registration-result-table td:nth-child(6) { text-align: left; }
.registration-result-table td a {
    color: #8b2c49;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.registration-result-search .organizer-search-actions { align-items: center; gap: .75rem; }
.registration-result-search .organizer-search-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; margin: 0; text-decoration: none; }
.registration-result-search .organizer-search-actions .btn-outline {
    border: 1px solid #a9a18a;
    border-radius: 999px;
    background: #fff;
    color: #4f4723;
    font-weight: 700;
    box-shadow: none;
}
.registration-result-search .organizer-search-actions .btn-outline:hover,
.registration-result-search .organizer-search-actions .btn-outline:focus-visible {
    border-color: var(--member-accent-dark);
    background: #f3f5e8;
    color: var(--member-accent-dark);
    box-shadow: 0 4px 10px rgba(79, 93, 0, .14);
}
.registration-result-status-cell .status-badge { max-width: 100%; white-space: normal; text-align: left; }
.registration-status--received { border-color: #547b9f; background: #eef6fc; color: #315d82; }
.registration-status--rejected { border-color: #bd4c43; background: #fff0ee; color: #8c2f28; }
@media (max-width: 767.98px) {
    .registration-result-search .organizer-search-actions { align-items: stretch; flex-direction: column; }
    .registration-result-search .organizer-search-actions .btn { width: 100%; }
    .registration-result-results .course-table-wrap { overflow: visible; box-shadow: none; }
    .registration-result-table,
    .registration-result-table tbody,
    .registration-result-table tr,
    .registration-result-table td { display: block; width: 100%; min-width: 0; }
    .registration-result-table thead {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }
    .registration-result-table tr {
        overflow: hidden; margin-bottom: 1rem; border: 1px solid #dfd2c8;
        border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09);
    }
    .registration-result-table td {
        display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem;
        padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left;
    }
    .registration-result-table td:last-child { border-bottom: 0; }
    .registration-result-table td::before { content: attr(data-label); color: #76570b; font-weight: 700; }
    .registration-result-table .registration-result-status-cell { align-items: start; }
    .registration-result-table .registration-result-status-cell .status-badge { justify-self: start; }
    .registration-result-table .course-table__empty { display: block; text-align: center; }
    .registration-result-table .course-table__empty::before { content: none; }
}


/* 青年就業旗艦－學員雙週誌列表 */
.youth-journal-table th,
.youth-journal-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.youth-journal-table th:nth-child(4),
.youth-journal-table td:nth-child(4) { text-align: left; }
.youth-journal-table td:nth-child(4) { overflow-wrap: anywhere; }
.youth-journal-table .btn-table { display: inline-flex; align-items: center; justify-content: center; min-width: 4.75rem; min-height: 2.5rem; margin: 0; padding: .4rem .9rem; border-radius: 999px; font-weight: 700; line-height: 1.3; box-shadow: none; }
.youth-journal-list-page .result-pagination .pageLink .pageStatus { border-color: var(--member-accent-dark); background: var(--member-accent-dark) !important; color: #fff !important; font-weight: 700; opacity: 1; }
.youth-journal-list-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }

@media (max-width: 767.98px) {
    .youth-journal-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .youth-journal-table,
    .youth-journal-table tbody,
    .youth-journal-table tr,
    .youth-journal-table td { display: block; width: 100%; min-width: 0; }
    .youth-journal-table thead {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }
    .youth-journal-table tr {
        overflow: hidden; margin-bottom: 1rem; border: 1px solid #dfd2c8;
        border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09);
    }
    .youth-journal-table td,
    .youth-journal-table td:nth-child(4) {
        display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem;
        padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left;
    }
    .youth-journal-table td:last-child { border-bottom: 0; }
    .youth-journal-table td::before { content: attr(data-label); color: #76570b; font-weight: 700; }
    .youth-journal-table .course-table__empty { display: block; text-align: center; }
    .youth-journal-table .course-table__empty::before { content: none; }
}


/* 青年就業旗艦－學員雙週誌填寫卡片 */
.youth-journal-entry-body { padding: 1.25rem; background: #fffaf5; }
.youth-journal-entry-note {
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border-left: 4px solid #76570b;
    background: #f7f3df;
    color: #4f4723;
}
.youth-journal-entry-table,
.youth-journal-entry-table tbody { display: block; width: 100%; }
.youth-journal-entry-table tbody { counter-reset: youth-journal-entry; }
.youth-journal-entry-table tbody > tr {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    margin-bottom: 1.25rem;
    border: 1px solid #dfd2c8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(86,55,36,.1);
    counter-increment: youth-journal-entry;
}
.youth-journal-entry-table tbody > tr::before {
    grid-column: 1 / -1;
    padding: .8rem 1rem;
    background: linear-gradient(90deg, #76570b, #667600);
    color: #fff;
    content: "第 " counter(youth-journal-entry) " 則";
    font-size: 1.08rem;
    font-weight: 700;
}
.youth-journal-entry-table tbody > tr::after {
    position: absolute;
    top: .62rem;
    right: .8rem;
    padding: .2rem .65rem;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    color: #fff;
    content: attr(data-entry-status);
    font-size: .86rem;
    font-weight: 700;
}
.youth-journal-entry-table td {
    display: block;
    min-width: 0;
    padding: .85rem 1rem;
    border: 0;
    border-bottom: 1px solid #eee4dc;
    background: #fff;
    text-align: left;
    vertical-align: top;
}
.youth-journal-entry-table td::before {
    display: block;
    margin-bottom: .4rem;
    color: #76570b;
    font-weight: 700;
}
.youth-journal-entry-table td:nth-child(1) { grid-column: 1 / -1; order: 5; border-bottom: 0; background: #faf7f2; }
.youth-journal-entry-table td:nth-child(1)::before { content: "選取本期送出"; display: inline; margin-right: .65rem; }
.youth-journal-entry-table td:nth-child(2) { grid-column: 1 / -1; order: 1; }
.youth-journal-entry-table td:nth-child(2)::before { content: "週誌期間"; }
.youth-journal-entry-table td:nth-child(3) { order: 2; }
.youth-journal-entry-table td:nth-child(3)::before { content: "指導內容"; }
.youth-journal-entry-table td:nth-child(4) { order: 3; }
.youth-journal-entry-table td:nth-child(4)::before { content: "學習心得"; }
.youth-journal-entry-table td:nth-child(5) { grid-column: 1 / -1; order: 4; }
.youth-journal-entry-table td:nth-child(5)::before { content: "送出日期／導師確認日期"; }
.youth-journal-entry-table textarea {
    width: 100%;
    min-height: 9rem;
    padding: .7rem .8rem;
    border: 1px solid #b9a89c;
    border-radius: 9px;
    resize: vertical;
}
.youth-journal-entry-table textarea:focus { border-color: #667600; outline: 3px solid rgba(102,118,0,.2); }
.youth-journal-entry-table tr.is-locked { border-color: #b8c28b; }
.youth-journal-entry-table tr.is-locked::before { background: linear-gradient(90deg, #536100, #718000); }
.youth-journal-entry-table input[type="checkbox"] { width: 1.15rem; height: 1.15rem; vertical-align: middle; }
.youth-journal-signature-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .25rem;
    padding: 1rem 1.15rem;
    border: 1px solid #d8cfb0;
    border-radius: 12px;
    background: #faf7e9;
}
.youth-journal-signature-copy { display: flex; flex-direction: column; gap: .25rem; color: #4f4723; }
.youth-journal-signature-copy strong { font-size: 1.05rem; }
.youth-journal-detail-actions {
    display: flex;
    justify-content: center;
    gap: .75rem;
    margin-top: 1.25rem;
}
.youth-journal-detail-actions .btn { min-width: 10rem; }
.youth-journal-detail-actions .btn-secondary {
    border: 1px solid #a9a18a;
    background: #fff;
    color: #4f4723;
    box-shadow: none;
}
.youth-journal-detail-actions .btn-secondary:hover,
.youth-journal-detail-actions .btn-secondary:focus-visible {
    border-color: var(--member-accent-dark);
    background: #f3f5e8;
    color: var(--member-accent-dark);
    box-shadow: 0 4px 10px rgba(79, 93, 0, .14);
}

@media (max-width: 767.98px) {
    .youth-journal-entry-body { padding: .85rem; }
    .youth-journal-entry-table tbody > tr { grid-template-columns: 1fr; }
    .youth-journal-entry-table td:nth-child(1),
    .youth-journal-entry-table td:nth-child(2),
    .youth-journal-entry-table td:nth-child(3),
    .youth-journal-entry-table td:nth-child(4),
    .youth-journal-entry-table td:nth-child(5) { grid-column: 1; }
    .youth-journal-signature-row { align-items: stretch; flex-direction: column; }
    .youth-journal-signature-row .btn { width: 100%; }
    .youth-journal-detail-actions { flex-direction: column; }
    .youth-journal-detail-actions .btn { width: 100%; }
}


/* 青年就業旗艦－學員相關文件下載卡片 */
.student-documents-body { padding: 1.25rem; background: #fffaf5; }
.student-documents-note { margin: 0 0 1rem; color: #5e5149; }
.student-document-list { display: grid; gap: 1rem; }
.student-document-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid #dfd2c8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(86,55,36,.09);
}
.student-document-card__info { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.student-document-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    flex: 0 0 3.2rem;
    border-radius: 12px;
    background: #f2e4d9;
    color: #8b2c49;
    font-size: 1.5rem;
}
.student-document-card__title { margin: 0; color: #5e3927; font-size: 1.15rem; }
.student-document-card__info p { margin: .3rem 0 0; color: #6b5b52; }
.student-document-card__actions { display: grid; grid-template-columns: repeat(3, minmax(5.5rem, 1fr)); gap: .65rem; }
.document-format-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.75rem;
    padding: .5rem .75rem;
    border: 1px solid #b9a89c;
    border-radius: 9px;
    background: #fff;
    color: #5e3927;
    text-decoration: none;
    white-space: nowrap;
}
.document-format-link:hover,
.document-format-link:focus-visible {
    border-color: #76570b;
    background: #f7f3df;
    color: #4f4723;
    text-decoration: none;
    outline: 3px solid rgba(26,115,232,.2);
}
.document-format-link__type { font-weight: 800; }
.document-format-link--pdf .document-format-link__type { color: #a4262c; }
.document-format-link--docx .document-format-link__type { color: #285b9b; }
.document-format-link--odt .document-format-link__type { color: #536b24; }

@media (max-width: 767.98px) {
    .student-documents-body { padding: .85rem; }
    .student-document-card { align-items: stretch; flex-direction: column; padding: 1rem; }
    .student-document-card__actions { width: 100%; }
    .document-format-link { flex-direction: column; gap: .1rem; white-space: normal; }
}
@media (max-width: 420px) {
    .student-document-card__actions { grid-template-columns: 1fr; }
    .document-format-link { flex-direction: row; gap: .45rem; }
}

/* 青年就業旗艦－學員問卷：Design Baseline survey-detail + Member Mode。 */
.member-mode .detail-section__header { background: linear-gradient(90deg, #76570b 0%, #667600 48%, #486500 100%); }
.member-mode .detail-section__title { text-shadow: 0 1px 2px rgba(35,45,0,.38); }
.member-mode .course-table th { background: var(--member-accent-dark); }
.member-mode .course-table tbody tr:hover td { background: var(--member-accent-soft); }
.member-mode .journal-accordion__button { background: #f7f8ee; color: var(--member-accent-dark); }
.member-mode .journal-accordion__button:hover,
.member-mode .journal-accordion__button:focus-visible { background: var(--member-accent-soft); }
.member-mode.survey-detail-page .journal-accordion__item > h2 { margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font-size: 1rem; line-height: 1.5; }
.member-mode.survey-detail-page .journal-accordion__button { min-height: 3.25rem; margin: 0; padding: .75rem 1rem; border: 0; font-size: 1rem; line-height: 1.5; }
.member-mode.survey-detail-page .journal-accordion__panel { padding: 1rem 1.25rem; }
.member-mode.survey-detail-page .journal-submit-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-width: 10rem; min-height: 2.75rem; margin: 0; padding: .55rem 1.35rem; border-radius: 999px; font-weight: 700; line-height: 1.4; text-decoration: none; box-shadow: none; }
.member-mode.survey-detail-page .journal-submit-actions .btn-member-primary { border: 1px solid var(--member-accent); background: var(--member-accent); color: #fff; }
.member-mode.survey-detail-page .journal-submit-actions .btn-member-primary:hover,
.member-mode.survey-detail-page .journal-submit-actions .btn-member-primary:focus-visible { border-color: var(--member-accent-dark); background: var(--member-accent-dark); color: #fff; box-shadow: 0 5px 12px rgba(79,93,0,.24); }
.member-mode.survey-detail-page .journal-submit-actions .btn-secondary { border: 1px solid #8a756a; background: #fff; color: #5f4e46; }
.member-mode.survey-detail-page .journal-submit-actions .btn-secondary:hover,
.member-mode.survey-detail-page .journal-submit-actions .btn-secondary:focus-visible { border-color: #8a756a; background: #f5eee9; color: #493a34; box-shadow: none; }
.member-mode.survey-detail-page .member-back-row { margin: 1rem 0 0; text-align: left; }
.member-mode.survey-detail-page .member-back-link { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.75rem; padding: .55rem 1.35rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; text-decoration: none; }
.member-mode.survey-detail-page .member-back-link:hover,
.member-mode.survey-detail-page .member-back-link:focus-visible { border-color: #8a756a; background: #f5eee9; color: #493a34; text-decoration: none; box-shadow: none; }
.youth-survey-table { min-width: 58rem; }
.youth-survey-table th,
.youth-survey-table td { text-align: center; vertical-align: middle; }
.youth-survey-table th:nth-child(4),
.youth-survey-table td:nth-child(4),
.youth-survey-table th:nth-child(5),
.youth-survey-table td:nth-child(5) { text-align: left; }
.youth-survey-table .btn:disabled { border-color: #bbb; background: #eee; color: #777; cursor: not-allowed; opacity: 1; }
.member-mode.survey-list-page .result-pagination .pageLink .pageStatus {
    border-color: var(--member-accent-dark);
    background: var(--member-accent-dark) !important;
    color: #fff !important;
    font-weight: 700;
    opacity: 1;
}
.member-mode.survey-list-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }
.youth-survey-info-grid > div:nth-child(n + 5) { border-top: 1px solid #e3dcd7; }
.youth-survey-info-grid > div:nth-child(5) { border-left: 0; }
.youth-survey-info-grid__wide { grid-column: span 2; }
.youth-survey-detail-page .journal-field-label { display: block; margin: .85rem 0 .4rem; color: var(--member-accent-dark); font-weight: 700; }
.youth-survey-detail-page .survey-form.is-readonly .survey-option { pointer-events: none; }
.youth-survey-detail-page .survey-question { font-size: 1rem; line-height: 1.65; }
.youth-survey-detail-page .survey-option { font-size: 1rem; line-height: 1.5; }
.youth-survey-detail-page .member-back-link::before { content: "←"; margin-right: 0; }

@media (max-width: 767.98px) {
    .youth-survey-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .youth-survey-table,
    .youth-survey-table tbody,
    .youth-survey-table tr,
    .youth-survey-table td { display: block; width: 100%; min-width: 0; }
    .youth-survey-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .youth-survey-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .youth-survey-table td { display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left; }
    .youth-survey-table td:last-child { border-bottom: 0; }
    .youth-survey-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .youth-survey-table .course-table__empty { display: block; text-align: center; }
    .youth-survey-table .course-table__empty::before { content: none; }
    .member-mode.survey-detail-page .journal-submit-actions .btn,
    .member-mode.survey-detail-page .member-back-link { width: 100%; }
    .member-mode.survey-detail-page .journal-accordion__button { min-height: 3rem; padding: .65rem .8rem; }
    .member-mode.survey-detail-page .journal-accordion__panel { padding: .85rem; }
}

/* 產學訓活動花絮：桌機查詢條件與查詢按鈕維持單列。 */
.actions-search-panel { display: block; }
.actions-search-row {
    display: grid;
    width: 100%;
    gap: 1rem 1.25rem;
    align-items: end;
}
.actions-search-row--plan { grid-template-columns: minmax(13rem, .9fr) minmax(25rem, 1.6fr) auto; }
.actions-search-row--all { grid-template-columns: minmax(11rem, .8fr) minmax(12rem, 1fr) minmax(23rem, 1.6fr) auto; }
.actions-search-panel .organizer-search-field:nth-child(2) { grid-column: auto; }
.actions-search-row > .news-search-field--date { grid-column: auto; }
.actions-search-row .news-date-range { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .55rem; }
.actions-search-row .news-date-range .input-group { min-width: 0; }
.actions-search-actions { display: flex; align-items: flex-end; }
.actions-search-actions .btn { min-width: 7.5rem; min-height: 2.75rem; }
.actions-list-page .news-results__summary--responsive { align-items: center; }
.actions-list-page .news-results__summary--responsive .news-results__summary-body { display: flex; align-items: center; gap: .9rem; }
.actions-list-page .news-results__summary--responsive .news-results__summary-label { display: inline-block; margin: 0; }
.actions-list-page .news-results__summary--responsive .news-results__summary-items { display: flex; align-items: center; flex-wrap: wrap; }
.actions-list-page .news-results__summary--responsive .news-results__clear { margin-top: 0; }
@media (max-width: 899.98px) {
    .actions-search-row--plan,
    .actions-search-row--all { grid-template-columns: minmax(0, 1fr); }
    .actions-search-row .news-date-range { grid-template-columns: minmax(0, 1fr); }
    .actions-search-row .news-date-range > span { text-align: center; }
    .actions-search-actions .btn { width: 100%; }
}
@media (max-width: 640px) {
    .actions-list-page .news-results__summary--responsive .news-results__summary-body { display: contents; }
    .actions-list-page .news-results__summary--responsive .news-results__summary-label { display: block; }
    .actions-list-page .news-results__summary--responsive .news-results__summary-items { display: grid; }
}
.actions-results-table th,
.actions-results-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.actions-results-table th:nth-child(2),
.actions-results-table td:nth-child(2) { text-align: left; }
.actions-results-table td a,
.actions-results-table td a:hover,
.actions-results-table td a:focus-visible { color: #8b2c49 !important; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.actions-results-table td a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.actions-list-page .result-pagination .pageLink .pageStatus { border-color: #7a2b3a; background: #7a2b3a !important; color: #fff !important; font-weight: 700; opacity: 1; }
.actions-list-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }
.actions-detail-page .unit-back-actions { justify-content: flex-start; margin: 1rem 0 0; }
.actions-detail-page .news-back-link { min-width: 0; min-height: 2.75rem; padding: .55rem 1.35rem; border-color: #8a756a; background: #fff; color: #5f4e46; box-shadow: none; }
.actions-detail-page .news-back-link:hover,
.actions-detail-page .news-back-link:focus-visible { border-color: #8a756a; background: #f5eee9; color: #493a34; text-decoration: none; box-shadow: none; }

/* 產學訓合作訓練－滿意度問卷列表。 */
.cooperative-survey-table { width: 100%; min-width: 0; table-layout: fixed; }
.cooperative-survey-table th,
.cooperative-survey-table td { padding: .7rem .6rem; text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
.cooperative-survey-table th:nth-child(1) { width: 8%; }
.cooperative-survey-table th:nth-child(2) { width: 10%; }
.cooperative-survey-table th:nth-child(3) { width: 18%; }
.cooperative-survey-table th:nth-child(4) { width: 21%; }
.cooperative-survey-table th:nth-child(5) { width: 19%; }
.cooperative-survey-table th:nth-child(6) { width: 12%; }
.cooperative-survey-table th:nth-child(7) { width: 12%; }
.cooperative-survey-table th:nth-child(3),
.cooperative-survey-table td:nth-child(3),
.cooperative-survey-table th:nth-child(4),
.cooperative-survey-table td:nth-child(4) { text-align: left; }
.cooperative-survey-table .survey-table__actions { white-space: nowrap; }
@media (max-width: 767.98px) {
    .cooperative-survey-list-page .course-table-wrap { overflow: visible; box-shadow: none; }
    .cooperative-survey-table,
    .cooperative-survey-table tbody,
    .cooperative-survey-table tr,
    .cooperative-survey-table td { display: block; width: 100%; min-width: 0; }
    .cooperative-survey-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .cooperative-survey-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .cooperative-survey-table td { display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left; }
    .cooperative-survey-table td:last-child { border-bottom: 0; }
    .cooperative-survey-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .cooperative-survey-table .survey-table__actions { align-items: center; white-space: normal; }
    .cooperative-survey-table .course-table__empty { display: block; text-align: center; }
    .cooperative-survey-table .course-table__empty::before { content: none; }
    .cooperative-survey-table .btn-table { width: 100%; }
}

/* 產學訓滿意度問卷內容頁。 */
.cooperative-survey-detail-page .survey-question-note { color: #746961; font-size: .92rem; font-weight: 400; }
.cooperative-survey-detail-page .survey-option input[type="radio"],
.cooperative-survey-detail-page .survey-option input[type="checkbox"] { flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0 !important; accent-color: var(--member-accent); }
.cooperative-survey-detail-page .survey-option:has(input:checked) { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }
.cooperative-survey-detail-page .survey-option:has(input:checked):hover,
.cooperative-survey-detail-page .survey-option:has(input:checked):focus-within { border-color: var(--member-accent-dark); background: var(--member-accent-soft); }
.cooperative-survey-detail-page .survey-question--textarea { margin: 0; padding: 1rem 0 0; border: 0; }
.cooperative-survey-detail-page .survey-form.is-readonly .survey-option,
.cooperative-survey-detail-page .survey-form.is-readonly .survey-likert-row label { cursor: default; }

/* 雙軌訓練旗艦－合作辦理單位資訊。 */
.dual-organizer-search-grid .organizer-search-field:nth-child(2) { grid-column: auto; }
.dual-organizer-results-table { min-width: 54rem; }
.dual-organizer-results-table th,
.dual-organizer-results-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.dual-organizer-results-table th:nth-child(4),
.dual-organizer-results-table td:nth-child(4) { text-align: left; }
.dual-organizer-results-table td a,
.dual-organizer-results-table td a:hover,
.dual-organizer-results-table td a:focus-visible {
    color: #8b2c49 !important;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em
}
.dual-organizer-results-table td a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px
}
.dual-organizer-detail-table { min-width: 44rem; }
.dual-organizer-detail-table th,
.dual-organizer-detail-table td { padding: .65rem 1rem; text-align: center; vertical-align: middle; }
.dual-organizer-detail-table th:nth-child(2),
.dual-organizer-detail-table td:nth-child(2),
.dual-organizer-detail-table th:nth-child(4),
.dual-organizer-detail-table td:nth-child(4) { text-align: left; }
@media (max-width: 767.98px) {
    .dual-organizer-search-grid { grid-template-columns: minmax(0, 1fr); }
}

/* 雙軌訓練旗艦－職類介紹。 */
.occupation-search-row { display: grid; grid-template-columns: repeat(3, minmax(10rem, 1fr)) auto; gap: 1rem 1.25rem; align-items: end; }
.occupation-search-row .organizer-search-field:nth-child(2) { grid-column: auto; }
.occupation-search-actions { display: flex; align-items: flex-end; }
.occupation-search-actions .btn { min-width: 7.5rem; min-height: 2.75rem; }
.occupation-results-table { min-width: 46rem; }
.occupation-results-table th,
.occupation-results-table td { text-align: center; vertical-align: middle; }
.occupation-results-table th:last-child,
.occupation-results-table td:last-child { text-align: left; }
.occupation-results-table td a,
.occupation-results-table td a:hover,
.occupation-results-table td a:focus-visible { color: #8b2c49 !important; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.occupation-results-table td a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.occupation-partner-groups { display: grid; gap: 1rem; }
.occupation-partner-card { overflow: hidden; border: 1px solid #e1d5ca; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.07); }
.occupation-partner-card__year { margin: 0; padding: .75rem 1rem; background: #f7f1eb; color: #76570b; font-size: 1.08rem; }
.occupation-partner-card__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.occupation-partner-card__columns > section { min-width: 0; padding: 1rem; }
.occupation-partner-card__columns > section + section { border-left: 1px solid #e8dfd8; }
.occupation-partner-card h4 { margin: 0 0 .7rem; color: #5e3927; font-size: 1rem; }
.occupation-unit-list { display: flex; flex-wrap: wrap; gap: .45rem .55rem; margin: 0; padding: 0; list-style: none; }
.occupation-unit-list li { padding: .38rem .62rem; border: 1px solid #dce1c4; border-radius: 999px; background: #fafbf3; color: #40332f; line-height: 1.45; overflow-wrap: anywhere; }
.occupation-unit-toggle { margin-top: .8rem; padding: .35rem 0; border: 0; background: transparent; color: #76570b; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.occupation-unit-toggle:hover,
.occupation-unit-toggle:focus-visible { color: #486500; }
.occupation-unit-empty { margin: 0; color: #746961; }
@media (max-width: 767.98px) {
    .occupation-search-row { grid-template-columns: minmax(0, 1fr); }
    .occupation-search-actions .btn { width: 100%; }
    .occupation-partner-card__columns { grid-template-columns: minmax(0, 1fr); }
    .occupation-partner-card__columns > section + section { border-top: 1px solid #e8dfd8; border-left: 0; }
    .occupation-unit-list { display: grid; grid-template-columns: minmax(0, 1fr); }
    .occupation-unit-list li { border-radius: 8px; }
}
/* 雙軌訓練旗艦－訓練生雙週誌列表。 */
.dual-week-report-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1rem; padding: 1rem 1.25rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fafbf3; }
.dual-week-report-info { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.5rem; margin: 0; }
.dual-week-report-info__item { display: flex; align-items: center; gap: .55rem; }
.dual-week-report-info__item span,
.dual-week-report-info__field label { color: var(--member-accent-dark, #4d5134); font-weight: 700; }
.dual-week-report-info__item strong { color: #40332f; }
.dual-week-report-info__field { display: flex; align-items: center; gap: .55rem; }
.dual-week-report-info__field select { min-width: 9rem; min-height: 2.6rem; padding: .45rem .7rem; border: 1px solid #aeb590; border-radius: 8px; background: #fff; color: #40332f; }
.dual-week-report-export { display: flex; flex: 0 0 auto; align-items: center; gap: .65rem; text-align: right; }
.dual-week-report-export p { margin: 0; color: #746961; font-size: .9rem; }
.dual-week-report-export .btn { min-width: 10rem; }
.dual-week-report-select-all { display: flex; flex: 0 0 auto; justify-content: flex-start; margin: 0 auto 0 0; }
.dual-week-report-select-all label { display: inline-flex; align-items: center; gap: .45rem; margin: 0; color: var(--member-accent-dark, #4d5134); font-weight: 700; cursor: pointer; }
.dual-week-report-select-all input,
.dual-week-report-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--member-accent, #667600); }
.dual-week-report-table { width: 100%; min-width: 0; table-layout: fixed; }
.dual-week-report-table th { padding: .55rem .35rem; background: var(--member-accent-dark, #4d5134); color: #fff; text-align: center; vertical-align: middle; white-space: normal; }
.dual-week-report-table td { padding: .55rem .35rem; text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
.dual-week-report-table th:first-child,
.dual-week-report-table td:first-child { text-align: left; }
.dual-week-report-table th:nth-child(1) { width: 4%; }
.dual-week-report-table th:nth-child(2) { width: 5%; }
.dual-week-report-table th:nth-child(3) { width: 7%; }
.dual-week-report-table th:nth-child(4) { width: 8%; }
.dual-week-report-table th:nth-child(5) { width: 9%; }
.dual-week-report-table th:nth-child(6) { width: 14%; }
.dual-week-report-table th:nth-child(7) { width: 9%; }
.dual-week-report-table th:nth-child(8),
.dual-week-report-table th:nth-child(9),
.dual-week-report-table th:nth-child(10) { width: 12%; }
.dual-week-report-table th:nth-child(11) { width: 8%; }
.dual-week-report-table .dual-week-report-comment { min-width: 0; color: #40332f; line-height: 1.5; text-align: left; overflow-wrap: anywhere; }
.dual-week-report-page .search-pager { margin-top: 1rem; }

@media (max-width: 767.98px) {
    .dual-week-report-toolbar { align-items: stretch; flex-direction: column; }
    .dual-week-report-info { align-items: stretch; flex-direction: column; }
    .dual-week-report-info__item,
    .dual-week-report-info__field { justify-content: space-between; }
    .dual-week-report-info__field select { width: min(13rem, 60%); }
    .dual-week-report-select-all { margin: 0; }
    .dual-week-report-export { align-items: stretch; flex-direction: column; text-align: left; }
    .dual-week-report-export .btn { width: 100%; }
    .dual-week-report-select-all { justify-content: flex-start; }
    .dual-week-report-page .dual-week-report-table-wrap { overflow: visible !important; background: transparent; box-shadow: none; }
    .dual-week-report-page .dual-week-report-table,
    .dual-week-report-page .dual-week-report-table tbody,
    .dual-week-report-page .dual-week-report-table tr,
    .dual-week-report-page .dual-week-report-table td { display: block; width: 100%; min-width: 0; }
    .dual-week-report-page .dual-week-report-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .dual-week-report-page .dual-week-report-table tr { overflow: hidden; margin-bottom: .85rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; }
    .dual-week-report-page .dual-week-report-table td,
    .dual-week-report-page .dual-week-report-table .dual-week-report-comment { display: grid; grid-template-columns: 7.25rem minmax(0, 1fr); gap: .75rem; padding: .65rem .8rem; border: 0; border-top: 1px solid #ecefe0; text-align: left; }
    .dual-week-report-page .dual-week-report-table td:first-child { border-top: 0; }
    .dual-week-report-page .dual-week-report-table td::before { content: attr(data-label); color: var(--member-accent-dark, #4d5134); font-weight: 700; }
    .dual-week-report-page .dual-week-report-table .course-table__empty { display: block; text-align: center; }
    .dual-week-report-page .dual-week-report-table .course-table__empty::before { content: none; }
    .dual-week-report-page .dual-week-report-table .btn-table { width: 100%; }
}
/* 雙軌訓練旗艦－訓練生雙週誌內容頁。 */
.dual-week-report-detail-page { --dual-member: var(--member-accent, #667600); --dual-member-dark: var(--member-accent-dark, #4d5134); }
.dual-week-report-detail-page .detail-section { margin-bottom: 1rem; }
.dual-week-report-summary { margin-bottom: 1rem; overflow: hidden; border: 1px solid #dce1c4; border-radius: 14px; background: #fff; box-shadow: 0 5px 16px rgba(65, 74, 28, .09); }
.dual-week-report-summary .journal-case-status { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid #dce1c4; background: #fafbf3; color: var(--dual-member-dark); font-weight: 700; }
.dual-week-report-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.dual-week-report-summary-grid > div { min-width: 0; padding: .8rem 1rem; border-top: 1px solid #e3dcd7; border-left: 1px solid #e3dcd7; }
.dual-week-report-summary-grid > div:nth-child(-n + 4) { border-top: 0; }
.dual-week-report-summary-grid > div:nth-child(4n + 1) { border-left: 0; }
.dual-week-report-summary-grid > .dual-week-report-summary-grid__wide { grid-column: 1 / -1; border-left: 0; }
.dual-week-report-summary-grid dt { margin: 0 0 .2rem; color: #746961; font-size: .9rem; font-weight: 700; }
.dual-week-report-summary-grid dd { margin: 0; color: #40332f; font-weight: 700; overflow-wrap: anywhere; }
.dual-week-report-training .dual-week-report-fields {
    display: grid;
    gap: 1rem;
    padding: 1.4rem;
    border: 1px solid #dce1c4;
    border-radius: 0 0 .75rem .75rem;
    background: #fff;
    box-shadow: 0 4px 14px rgba(65, 74, 28, .08)
}
.dual-week-report-field { display: grid; grid-template-columns: 14rem minmax(0, 1fr); align-items: start; gap: 1.25rem; margin: 0; padding: 0; border: 0; }
.dual-week-report-field > label,
.dual-week-report-field > legend,
.dual-week-report-label { display: flex; justify-content: flex-end; gap: .15rem; min-height: 2.75rem; margin: 0; padding: .55rem 0; color: #5b3a2c; font-weight: 700; text-align: right; }
.dual-week-report-field > legend { width: auto; border: 0; font-size: inherit; line-height: inherit; }
.dual-week-report-field > p {
    width: min(40rem, 100%);
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem .75rem;
    border: 1px solid #d8d3cd;
    border-radius: .45rem;
    background: #f2f0ed;
    color: #645d58;
    overflow-wrap: anywhere
}
.dual-week-report-field input[type="text"],
.dual-week-report-field select { width: min(40rem, 100%); min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid #cfc7c1; border-radius: .45rem; background: #fff; color: #302a26; font: inherit; }
.dual-week-report-textarea-field textarea { width: min(40rem, 100%); min-height: 2.75rem; padding: .55rem .75rem; border: 1px solid #b8ae9f; border-radius: 8px; background: #fff; color: #302a26; font: inherit; }
.dual-week-report-field select { width: min(22rem, 100%); }
.dual-week-report-field input[type="text"]:focus,
.dual-week-report-field select:focus { border-color: var(--dual-member); outline: 3px solid rgba(102, 118, 0, .2); outline-offset: 1px; }
.dual-week-report-field input[readonly] { border-color: #d8d3cd; background: #f2f0ed; color: #645d58; }
.dual-week-report-control-stack { display: grid; gap: .6rem; }
.dual-week-report-reference-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.dual-week-report-reference-links a { color: #76570b; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.dual-week-report-leave { min-width: 0; }
.dual-week-report-leave > div { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem 1.25rem; min-height: 2.75rem; }
.dual-week-report-leave > div label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; cursor: pointer; }
.dual-week-report-leave input { width: 1.2rem; height: 1.2rem; accent-color: var(--dual-member); }
.dual-week-report-leave > p { grid-column: 2; margin: -.35rem 0 0; padding: .75rem 1rem; border-left: 4px solid #c88719; background: #fff8e8; color: #664a16; line-height: 1.6; }
.dual-week-report-entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.dual-week-report-textarea-field { min-width: 0; }
.dual-week-report-textarea-field label { display: block; margin-bottom: .5rem; color: var(--dual-member-dark); font-weight: 700; }
.dual-week-report-textarea-field textarea { width: 100%; min-height: 13rem; resize: vertical; }
.member-mode.journal-detail-page .dual-week-report-textarea-field textarea:focus {
    border-color: var(--member-accent);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(111,128,0,.14);
}
.dual-week-report-textarea-field .hint { margin: .4rem 0 0; color: #746961; font-size: .9rem; }
.dual-week-report-history-list,
.dual-week-report-review-list { display: grid; gap: .75rem; }
.dual-week-report-history-list details,
.dual-week-report-review-list details { overflow: hidden; border: 1px solid #dce1c4; border-radius: 10px; background: #fff; }
.dual-week-report-history-list summary,
.dual-week-report-review-list summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; min-height: 3.5rem; padding: .7rem 1rem; background: #fafbf3; color: var(--dual-member-dark); font-weight: 700; cursor: pointer; list-style: none; }
.dual-week-report-history-list summary::-webkit-details-marker,
.dual-week-report-review-list summary::-webkit-details-marker { display: none; }
.dual-week-report-history-list summary::after,
.dual-week-report-review-list summary::after { content: none; }
.dual-week-report-accordion-icon { width: .7rem; height: .7rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s ease; }
.dual-week-report-history-list details[open] > summary .dual-week-report-accordion-icon,
.dual-week-report-review-list details[open] > summary .dual-week-report-accordion-icon { transform: rotate(225deg); }
.dual-week-report-summary-meta { color: #746961; font-weight: 500; }
.dual-week-report-history-panel,
.dual-week-report-review-panel { padding: 1rem; border-top: 1px solid #dce1c4; }
.dual-week-report-history-panel dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 1rem; }
.dual-week-report-history-panel dl > div { padding: .7rem .8rem; border: 1px solid #e3dcd7; }
.dual-week-report-history-panel dt { color: #746961; font-size: .9rem; font-weight: 700; }
.dual-week-report-history-panel dd { margin: .2rem 0 0; font-weight: 700; }
.dual-week-report-history-content,
.dual-week-report-review-grid,
.dual-week-report-return-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.dual-week-report-history-content > div,
.dual-week-report-review-grid > div,
.dual-week-report-return-grid > div { min-width: 0; padding: 1rem; border: 1px solid #e3dcd7; border-radius: 9px; background: #fffdf9; }
.dual-week-report-history-content h3,
.dual-week-report-review-panel h3 { margin: 0 0 .55rem; color: #5b3a2c; font-size: 1rem; }
.dual-week-report-history-content p { margin: 0; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.dual-week-report-reviewer { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: 0 0 .75rem; }
.dual-week-report-reviewer strong { color: #746961; }
.dual-week-report-reviewer--master { align-items: center; margin-bottom: 1rem; padding: .7rem 1rem; border: 1px solid #dce1c4; border-radius: 8px; background: #fafbf3; }
.dual-week-report-reviewer--master strong { color: var(--dual-member-dark); }
.dual-week-report-reviewer--strip { align-items: center; margin-bottom: .8rem; padding: .65rem .8rem; border-left: 4px solid var(--dual-member); border-radius: 0 7px 7px 0; background: #f4f7e7; }
.dual-week-report-reviewer--strip strong { color: var(--dual-member-dark); }
.dual-week-report-master-review-grid { grid-template-columns: minmax(0, 3fr) minmax(18rem, 2fr); }
.dual-week-report-review-grid > .dual-week-report-review-group { padding: 0; border: 0; background: transparent; }
.dual-week-report-readonly { min-height: 6rem; padding: .75rem; border: 1px solid #ddd5cf; border-radius: 8px; background: #f7f5f3; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.dual-week-report-readonly--soft { border: 0; background: #f7f5f3; }
.dual-week-report-score { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.dual-week-report-score li { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); align-items: center; gap: .6rem .8rem; padding: .65rem .75rem; border: 1px solid #e1e5cf; border-radius: 8px; background: #fafbf3; }
.dual-week-report-score li > span { color: var(--dual-member-dark); font-weight: 700; }
.dual-week-report-score .radioset { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .75rem; margin: 0; }
.dual-week-report-score .radioset label { display: inline-flex; align-items: center; gap: .3rem; margin: 0; color: #645d58; font-weight: 500; opacity: 1; }
.dual-week-report-score .radioset input[type="radio"] { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--dual-member); opacity: 1; }
.dual-week-report-score .radioset input[type="radio"]:checked + span,
.dual-week-report-score .radioset input[type="radio"]:checked + label { color: var(--dual-member-dark); font-weight: 700; }
.dual-week-report-score-empty { min-height: 6rem; margin: 0; padding: .75rem; border: 1px solid #ddd5cf; border-radius: 8px; background: #f7f5f3; color: #746961; }
.dual-week-report-review-list .comment-status.is-partial { border-color: #c88719; background: #fff4d6; color: #76500a; }
.dual-week-report-review-list .comment-status.is-alert { border-color: #bd4c43; background: #fff0ee; color: #8c2f28; }
.dual-week-report-return-sections { display: grid; gap: 1.25rem; }
.dual-week-report-return-section > h3,
.dual-week-report-authority-section > h3 { margin-bottom: .7rem; }
.dual-week-report-return-item { min-width: 0; padding: .8rem 1rem; border-left: 4px solid #bd4c43; border-radius: 0 8px 8px 0; background: #fff5f2; }
.dual-week-report-return-grid > .dual-week-report-return-item { border-top: 0; border-right: 0; border-bottom: 0; }
.dual-week-report-return-item h4 { margin: 0 0 .4rem; color: #8c2f28; font-size: .98rem; }
.dual-week-report-return-item > div { color: #5f4e46; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.dual-week-report-authority-section { padding-top: 1.1rem; border-top: 1px solid #e3dcd7; }
.dual-week-report-return-grid__wide { grid-column: 1 / -1; }
.dual-week-report-files > .detail-section__body { padding: 1.4rem; border: 1px solid #dce1c4; border-radius: 0 0 .75rem .75rem; background: #fff; box-shadow: 0 4px 14px rgba(65, 74, 28, .08); }
.dual-week-report-files .system-upload { display: grid; grid-template-columns: 12rem minmax(0, 1fr); align-items: center; gap: 1rem 1.25rem; }
.dual-week-report-files .system-upload__label,
.dual-week-report-files .system-upload__control { float: none; width: auto; margin: 0; padding: 0; }
.dual-week-report-files .system-upload__label { color: var(--dual-member-dark); font-weight: 700; text-align: right; }
.dual-week-report-files .system-upload__input-group { display: flex; width: min(42rem, 100%); max-width: none; }
.dual-week-report-files .system-upload__input-group .form-control { min-width: 0; min-height: 2.75rem; border-color: #cfc7c1; border-radius: .45rem 0 0 .45rem; background: #fff; box-shadow: none; }
.dual-week-report-files .system-upload__input-group .form-control:focus { border-color: var(--dual-member); outline: 3px solid rgba(102, 118, 0, .2); outline-offset: 1px; }
.dual-week-report-files .system-upload__input-group .input-group-btn { display: flex; width: auto; }
.dual-week-report-files .system-upload__button { display: inline-flex; align-items: center; justify-content: center; min-width: 4.75rem; min-height: 2.5rem; margin: 0; padding: .35rem .8rem; border-radius: 999px; font-weight: 700; line-height: 1.4; box-shadow: none; }
.dual-week-report-files .system-upload__button--upload { min-height: 2.75rem; border-color: var(--dual-member); border-radius: 0 .45rem .45rem 0; background: var(--dual-member); color: #fff; }
.dual-week-report-files .system-upload__button--upload:hover,
.dual-week-report-files .system-upload__button--upload:focus-visible,
.dual-week-report-files .system-upload__button--download:hover,
.dual-week-report-files .system-upload__button--download:focus-visible { border-color: var(--dual-member-dark); background: var(--dual-member-dark); color: #fff; }
.dual-week-report-files .system-upload__file-rows { grid-column: 1 / -1; min-width: 0; }
.dual-week-report-files .system-upload__error { margin-bottom: .75rem; color: #b42318; font-weight: 700; }
.dual-week-report-files .system-upload__table { width: 100%; margin-top: .25rem; border-collapse: collapse; table-layout: fixed; }
.dual-week-report-files .system-upload__table th,
.dual-week-report-files .system-upload__table td { padding: .65rem .75rem; border: 0; text-align: center; vertical-align: middle; }
.dual-week-report-files .system-upload__table th { background: var(--dual-member-dark); color: #fff; font-weight: 700; }
.dual-week-report-files .system-upload__table tbody tr:nth-child(odd) td { background: #fff; }
.dual-week-report-files .system-upload__table tbody tr:nth-child(even) td { background: #f4f4f4; }
.dual-week-report-files .system-upload__table td:first-child,
.dual-week-report-files .system-upload__table td:nth-child(2) { text-align: left; overflow-wrap: anywhere; }
.dual-week-report-files .system-upload__table td input[type="text"] { width: 100%; min-height: 2.5rem; padding: .45rem .65rem; border: 1px solid #cfc7c1; border-radius: .45rem; background: #fff; color: #302a26; box-shadow: none; }
.dual-week-report-files .system-upload__table td input[type="text"]:focus { border-color: var(--dual-member); outline: 3px solid rgba(102, 118, 0, .2); outline-offset: 1px; }
.dual-week-report-files .system-upload__button--download { border-color: var(--dual-member); background: var(--dual-member); color: #fff; }
.dual-week-report-files .system-upload__button--delete { border-color: #bd4c43; background: #bd4c43; color: #fff; }
.dual-week-report-files .system-upload__button--delete:hover,
.dual-week-report-files .system-upload__button--delete:focus-visible { border-color: #8c2f28; background: #8c2f28; color: #fff; }
.dual-week-report-files .system-upload__empty { padding: 1rem; color: #746961; text-align: center !important; }
.dual-week-report-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0; }
.dual-week-report-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-width: 8rem; min-height: 2.75rem; margin: 0; padding: .55rem 1.35rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; line-height: 1.4; text-decoration: none; box-shadow: none; }
.dual-week-report-actions .btn:hover,
.dual-week-report-actions .btn:focus-visible { background: #f5eee9; color: #493a34; text-decoration: none; }
.dual-week-report-actions .btn-member-primary { border-color: var(--dual-member); background: var(--dual-member); color: #fff; }
.dual-week-report-actions .btn-member-primary:hover,
.dual-week-report-actions .btn-member-primary:focus-visible { border-color: var(--dual-member-dark); background: var(--dual-member-dark); color: #fff; box-shadow: 0 5px 12px rgba(79, 93, 0, .24); }
.dual-week-report-detail-page .member-back-row,
.dual-track-survey-detail-page .member-back-row,
.cooperative-survey-detail-page .member-back-row { margin: 1rem 0 0; text-align: left; }
.dual-week-report-detail-page .member-back-link,
.dual-track-survey-detail-page .member-back-link,
.cooperative-survey-detail-page .member-back-link { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.75rem; padding: .55rem 1.35rem; border: 1px solid #8a756a; border-radius: 999px; background: #fff; color: #5f4e46; font-weight: 700; text-decoration: none; }
.dual-week-report-detail-page .member-back-link::before,
.dual-track-survey-detail-page .member-back-link::before,
.cooperative-survey-detail-page .member-back-link::before { content: none; }
.dual-week-report-detail-page .member-back-link:hover,
.dual-week-report-detail-page .member-back-link:focus-visible,
.dual-track-survey-detail-page .member-back-link:hover,
.dual-track-survey-detail-page .member-back-link:focus-visible,
.cooperative-survey-detail-page .member-back-link:hover,
.cooperative-survey-detail-page .member-back-link:focus-visible { background: #f5eee9; color: #493a34; text-decoration: none; }

@media (max-width: 767.98px) {
    .dual-week-report-training .dual-week-report-fields { padding: 1rem; }
    .dual-week-report-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dual-week-report-summary-grid > div,
    .dual-week-report-summary-grid > div:nth-child(-n + 4) { border-top: 1px solid #e3dcd7; }
    .dual-week-report-summary-grid > div:nth-child(-n + 2) { border-top: 0; }
    .dual-week-report-summary-grid > div:nth-child(odd) { border-left: 0; }
    .dual-week-report-summary-grid > .dual-week-report-summary-grid__wide { grid-column: 1 / -1; }
    .dual-week-report-field { grid-template-columns: 1fr; gap: .35rem; }
    .dual-week-report-field > label,
    .dual-week-report-field > legend,
    .dual-week-report-label { justify-content: flex-start; min-height: auto; padding: 0; text-align: left; }
    .dual-week-report-field input[type="text"],
    .dual-week-report-field select { width: 100%; }
    .dual-week-report-leave > p { grid-column: 1; }
    .dual-week-report-entry-grid,
    .dual-week-report-history-content,
    .dual-week-report-review-grid,
    .dual-week-report-return-grid { grid-template-columns: 1fr; }
    .dual-week-report-master-review-grid { grid-template-columns: 1fr; }
    .dual-week-report-score li { grid-template-columns: 1fr; }
    .dual-week-report-history-list summary,
    .dual-week-report-review-list summary { grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
    .dual-week-report-history-list summary .comment-status,
    .dual-week-report-review-list summary .comment-status,
    .dual-week-report-history-list summary .dual-week-report-summary-meta { grid-column: 1; justify-self: start; }
    .dual-week-report-history-list summary .dual-week-report-accordion-icon,
    .dual-week-report-review-list summary .dual-week-report-accordion-icon { grid-column: 2; grid-row: 1 / span 2; }
    .dual-week-report-return-grid__wide { grid-column: 1; }
    .dual-week-report-actions { display: grid; grid-template-columns: 1fr; }
    .dual-week-report-actions .btn { width: 100%; }
    .dual-week-report-files > .detail-section__body { padding: 1rem; }
    .dual-week-report-files .system-upload { grid-template-columns: 1fr; gap: .5rem; }
    .dual-week-report-files .system-upload__label { text-align: left; }
    .dual-week-report-files .system-upload__input-group { display: grid; gap: .6rem; width: 100%; }
    .dual-week-report-files .system-upload__input-group .form-control,
    .dual-week-report-files .system-upload__button--upload { width: 100%; border-radius: .45rem; }
    .dual-week-report-files .system-upload__input-group .input-group-btn { display: block; }
    .dual-week-report-files .system-upload__table,
    .dual-week-report-files .system-upload__table tbody,
    .dual-week-report-files .system-upload__table tr,
    .dual-week-report-files .system-upload__table td { display: block; width: 100%; min-width: 0; }
    .dual-week-report-files .system-upload__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .dual-week-report-files .system-upload__table tr { overflow: hidden; margin-bottom: .85rem; border: 1px solid #dce1c4; border-radius: 10px; background: #fff; }
    .dual-week-report-files .system-upload__table td { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .75rem; padding: .65rem .8rem; border-top: 1px solid #ecefe0; text-align: left; }
    .dual-week-report-files .system-upload__table td:first-child { border-top: 0; }
    .dual-week-report-files .system-upload__table td::before { content: attr(data-label); color: var(--dual-member-dark); font-weight: 700; }
    .dual-week-report-files .system-upload__table .system-upload__empty { display: block; text-align: center !important; }
    .dual-week-report-files .system-upload__table .system-upload__empty::before { content: none; }
    .dual-week-report-files .system-upload__button--download,
    .dual-week-report-files .system-upload__button--delete { width: 100%; }
}
@media (max-width: 575.98px) {
    .dual-week-report-summary-grid { grid-template-columns: 1fr; }
    .dual-week-report-summary-grid > div,
    .dual-week-report-summary-grid > div:nth-child(-n + 2) { border-top: 1px solid #e3dcd7; border-left: 0; }
    .dual-week-report-summary-grid > div:first-child { border-top: 0; }
    .dual-week-report-summary-grid > .dual-week-report-summary-grid__wide { grid-column: 1; }
    .dual-week-report-history-panel dl { grid-template-columns: 1fr; }
}
/* 雙軌訓練旗艦計畫－訓練生問卷列表。 */
.dual-track-survey-table { min-width: 46rem; }
.dual-track-survey-table th,
.dual-track-survey-table td { text-align: center; vertical-align: middle; }
.dual-track-survey-table th:first-child,
.dual-track-survey-table td:first-child { text-align: left; }
.dual-track-survey-table .survey-table__actions { white-space: nowrap; }
.dual-track-survey-table .btn:disabled { border-color: #bbb; background: #eee; color: #777; cursor: not-allowed; opacity: 1; }
.status-badge--closed { border-color: #aaa; background: #f1f1f1; color: #666; }

@media (max-width: 767.98px) {
    .dual-track-survey-table,
    .dual-track-survey-table tbody,
    .dual-track-survey-table tr,
    .dual-track-survey-table td { display: block; width: 100%; min-width: 0; }
    .dual-track-survey-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .dual-track-survey-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #dce1c4; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86,55,36,.09); }
    .dual-track-survey-table td,
    .dual-track-survey-table td:first-child { display: grid; grid-template-columns: minmax(6.75rem, 36%) 1fr; gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left; }
    .dual-track-survey-table td:last-child { border-bottom: 0; }
    .dual-track-survey-table td::before { content: attr(data-label); color: var(--member-accent-dark); font-weight: 700; }
    .dual-track-survey-table .course-table__empty { display: block; text-align: center; }
.dual-track-survey-table .course-table__empty::before { content: none; }
}

/* 雙軌訓練旗艦計畫－訓練生問卷內容。 */
.dual-track-survey-form { display: block; }
.dual-track-survey-accordion { margin-top: 1rem; }
.dual-track-survey-section-intro { margin: 0 0 1rem; padding: .7rem .9rem; border-left: 4px solid var(--member-accent); border-radius: 0 8px 8px 0; background: var(--member-accent-soft); color: var(--member-accent-dark); line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.dual-track-survey-major + .dual-track-survey-major { margin-top: 1.4rem; }
.dual-track-survey-major .survey-subsection-title { margin: 0; }
.dual-track-survey-questions { padding: .15rem 0; }
.dual-track-survey-question > legend { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.dual-track-survey-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dual-track-survey-options > .checkbox { margin: 0; padding: 0; border: 0; background: transparent; }
.dual-track-survey-options > label:not(.survey-option),
.dual-track-survey-options .checkbox > label { display: flex; align-items: flex-start; gap: .45rem; width: 100%; min-height: 2.6rem; margin: 0; padding: .55rem .7rem; border: 1px solid #d8d0ca; border-radius: 8px; background: #fff; color: var(--text); font-weight: 400; white-space: normal; cursor: pointer; }
.dual-track-survey-options > label:not(.survey-option):hover,
.dual-track-survey-options > label:not(.survey-option):focus-within,
.dual-track-survey-options .checkbox > label:hover,
.dual-track-survey-options .checkbox > label:focus-within { border-color: var(--member-accent); background: var(--member-accent-soft); }
.dual-track-survey-options .survey-option:has(input:checked),
.dual-track-survey-options .checkbox > label:has(input:checked) { border-color: var(--member-accent); background: var(--member-accent-soft); color: var(--member-accent-dark); font-weight: 700; }
.dual-track-survey-options input[type="checkbox"],
.dual-track-survey-options input[type="radio"] { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0 !important; accent-color: var(--member-accent); }
.dual-track-survey-options .survey-textarea { grid-column: 1 / -1; width: 100%; min-height: 7rem; margin: 0; padding: .7rem .8rem; border: 1px solid #cfc6bf; border-radius: 8px; background: #fff; color: var(--text); line-height: 1.6; resize: vertical; }
.dual-track-survey-options .survey-textarea:focus { border-color: var(--member-accent); box-shadow: 0 0 0 3px rgba(111, 128, 0, .14); outline: 0; }
.dual-track-survey-likert { margin-top: .9rem; }
.dual-track-survey-likert .survey-likert-header,
.dual-track-survey-likert .survey-likert-row { grid-template-columns: minmax(16rem, 2fr) repeat(5, minmax(5.5rem, 1fr)); }
.dual-track-survey-likert .survey-likert-row > label:has(input:checked) { background: var(--member-accent-soft); }
.dual-track-survey-suggestion { margin-top: 1.5rem; }
.dual-track-survey-suggestion .journal-field-label { display: block; margin: 0 0 .55rem; color: var(--member-accent-dark); font-weight: 700; }
.dual-track-survey-suggestion .survey-textarea { min-height: 9rem; margin: 0; }
.dual-track-survey-actions { margin-top: 1.5rem; }

@media (max-width: 767.98px) {
    .dual-track-survey-options { grid-template-columns: 1fr; }
    .dual-track-survey-likert .survey-likert-row { grid-template-columns: 1fr; }
    .dual-track-survey-question > legend { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .dual-track-survey-accordion .journal-accordion__panel { padding: .85rem; }
    .dual-track-survey-actions { display: grid; grid-template-columns: 1fr; }
    .dual-track-survey-actions .btn { width: 100%; }
}

/* 綜合查詢：標題與分類對齊最新消息，查詢欄位桌機 4 欄、平板 2 欄、手機 1 欄。 */
.comprehensive-search-page .news-search-header { align-items: center; justify-content: flex-start; }
.comprehensive-search-tabs { flex: 1 1 auto; justify-content: flex-start; margin: 0; }
.comprehensive-search-tabs .search-tabs__tabs { flex: 2 1 0; min-width: 0; }
.comprehensive-search-tabs .search-tabs__tabs > button,
.comprehensive-search-tabs > a { flex: 1 1 0; min-width: 0; }
.comprehensive-search-tabs > a { display: inline-flex; align-items: center; justify-content: center; gap: .25rem; }
.comprehensive-search-tabs > a:hover .external-link-icon,
.comprehensive-search-tabs > a:focus-visible .external-link-icon {
    border-color: #fff;
    color: #fff;
}
.search-panel.comprehensive-search-panel { display: block; }
.comprehensive-search-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 1rem 1.25rem; }
.comprehensive-search-grid .organizer-search-field:nth-child(2) { grid-column: auto; }
.comprehensive-search-field--date { grid-column: span 2; }
.comprehensive-search-panel .organizer-search-actions { justify-content: center; }
.comprehensive-search-options,
.comprehensive-search-options .form-group { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding-top: .1rem; }
.comprehensive-search-options .radio { flex: 0 0 auto; margin: 0; }
.comprehensive-search-options .radio label { display: inline-flex; align-items: center; gap: .45rem; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #5a3a2f; font-weight: 500; white-space: nowrap; cursor: pointer; }
.comprehensive-search-options .radio label:hover { color: #8f3c78; }
.comprehensive-search-options .radio input { accent-color: #aa4b8f; }
.comprehensive-search-page .news-results__summary--responsive { align-items: center; }
.comprehensive-search-page .news-results__summary--responsive .news-results__clear { margin-top: 0; }

/* 產業新尖兵查詢：沿用綜合查詢元件，保留原 MVC 欄位與資料綁定。 */
.search-panel.elit-search-panel { display: block; }
.elit-search-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 1rem 1.25rem; }
.elit-search-grid .organizer-search-field:nth-child(2) { grid-column: auto; }
.elit-search-field--date { grid-column: span 2; }
.elit-results-table { min-width: 70rem; }
.elit-results-table th,
.elit-results-table td { text-align: center; vertical-align: middle; }
.elit-results-table th:nth-child(1),
.elit-results-table td:nth-child(1),
.elit-results-table th:nth-child(2),
.elit-results-table td:nth-child(2) { text-align: left; }
.elit-results-table td a { color: #8b2c49; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.elit-date-range { display: inline-grid; gap: .15rem; }
.elit-date-range > span { color: #9a7968; }
.elit-search-page .SearchElit-pager { text-align: initial; }
@media (max-width: 1100px) {
    .comprehensive-search-page .news-search-header { align-items: flex-start; }
    .comprehensive-search-tabs { justify-content: flex-start; }
    .comprehensive-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .elit-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .comprehensive-search-page .news-search-header { display: block; }
    .comprehensive-search-tabs { flex-direction: column; gap: .65rem; margin-top: .75rem; overflow: visible; }
    .comprehensive-search-tabs .search-tabs__tabs { display: grid; grid-template-columns: 1fr; width: 100%; }
    .comprehensive-search-tabs .search-tabs__tabs > button,
    .comprehensive-search-tabs > a { width: 100%; min-height: 3rem; text-align: left; }
    .comprehensive-search-grid { grid-template-columns: minmax(0, 1fr); }
    .comprehensive-search-field--date { grid-column: auto; }
    .comprehensive-search-panel .organizer-search-actions .btn { width: 100%; }
    .elit-search-grid { grid-template-columns: minmax(0, 1fr); }
    .elit-search-field--date { grid-column: auto; }
    .elit-search-panel .organizer-search-actions .btn { width: 100%; }
    .elit-results-table,
    .elit-results-table tbody,
    .elit-results-table tr,
    .elit-results-table td { display: block; width: 100%; min-width: 0; }
    .elit-results-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .elit-results-table tr { overflow: hidden; margin-bottom: 1rem; border: 1px solid #ead8c8; border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgba(86, 55, 36, .09); }
    .elit-results-table td,
    .elit-results-table td:nth-child(1),
    .elit-results-table td:nth-child(2) { display: grid; grid-template-columns: minmax(7rem, 36%) minmax(0, 1fr); gap: .75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #eee4dc; text-align: left; }
    .elit-results-table td:last-child { border-bottom: 0; }
    .elit-results-table td::before { content: attr(data-label); color: #6c3822; font-weight: 700; }
    .elit-results-table .course-table__empty { display: block; text-align: center; }
    .elit-results-table .course-table__empty::before { content: none; }
}

/* YR013 Detail：最終覆寫舊版 Bootstrap／共用按鈕，填寫與檢視狀態使用同一個次要按鈕。 */
.member-mode.journal-detail-page .journal-submit-actions .btn.btn-journal-secondary {
    display: inline-flex;
    float: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto;
    min-width: 10rem;
    height: auto;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 1.35rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background-color: #fff;
    background-image: none;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
}
.member-mode.journal-detail-page .journal-submit-actions .btn.btn-journal-secondary:hover,
.member-mode.journal-detail-page .journal-submit-actions .btn.btn-journal-secondary:focus-visible {
    border-color: #8a756a;
    background-color: #f5eee9;
    background-image: none;
    color: #493a34;
    text-decoration: none;
    box-shadow: none;
}
@media (max-width: 767.98px) {
    .member-mode.journal-detail-page .journal-submit-actions .btn.btn-journal-secondary { width: 100%; }
}

/* YR013 電子簽名：對齊 biweekly-journal-detail 的次要操作按鈕。 */
.member-mode.journal-detail-page .signature-actions .btn.btn-journal-signature-secondary {
    display: inline-flex;
    float: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem .8rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background-color: #fff;
    background-image: none;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
}
.member-mode.journal-detail-page .signature-actions .btn.btn-journal-signature-secondary:hover,
.member-mode.journal-detail-page .signature-actions .btn.btn-journal-signature-secondary:focus-visible {
    border-color: #8a756a;
    background-color: #f5eee9;
    background-image: none;
    color: #493a34;
    text-decoration: none;
    box-shadow: none;
}

/* ypStayApply 列表：最終覆寫舊版按鈕，保留填寫／檢視／退回的操作層級。 */
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action {
    display: inline-flex;
    float: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto;
    min-width: 4.75rem;
    height: auto;
    min-height: 2.5rem;
    margin: 0;
    padding: .4rem .9rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background-color: #fff;
    background-image: none;
    color: #5f4e46;
    font: inherit;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
}
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action.btn-table--primary {
    border-color: #83933d;
    background-color: #83933d;
    background-image: none;
    color: #fff;
}
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action.btn-table--returned {
    border-color: #b65a36;
    background-color: #fff0e8;
    color: #8a351b;
}
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action:hover,
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action:focus-visible {
    border-color: #4d5134;
    background-color: #4d5134;
    background-image: none;
    color: #fff;
    text-decoration: none;
}
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action.btn-table--returned:hover,
.member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action.btn-table--returned:focus-visible {
    border-color: #8a351b;
    background-color: #8a351b;
    color: #fff;
}
@media (max-width: 767.98px) {
    .member-mode.stay-apply-list-page .stay-apply-table .btn.btn-stay-apply-action { width: 100%; }
}

/* 就業學程滿意度問卷：隔離舊版問卷樣式並對齊 survey-detail。 */
.member-mode.employment-survey-detail-page .survey-form,
.member-mode.employment-survey-detail-page .member-info-card,
.member-mode.employment-survey-detail-page .member-info-card__heading,
.member-mode.employment-survey-detail-page .member-info-card__grid > div,
.member-mode.employment-survey-detail-page .journal-accordion__panel {
    background-color: transparent;
    background-image: none;
}
.member-mode.employment-survey-detail-page .member-back-row { margin: 1rem 0 0; text-align: left; }
.member-mode.employment-survey-detail-page .member-back-link.employment-survey-back {
    display: inline-flex;
    float: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 1.35rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background-color: #fff;
    background-image: none;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    box-shadow: none;
}
.member-mode.employment-survey-detail-page .member-back-link.employment-survey-back::before { content: "←"; }
.member-mode.employment-survey-detail-page .member-back-link.employment-survey-back:hover,
.member-mode.employment-survey-detail-page .member-back-link.employment-survey-back:focus-visible {
    border-color: #8a756a;
    background-color: #f5eee9;
    color: #493a34;
    text-decoration: none;
    box-shadow: none;
}
@media (max-width: 767.98px) {
    .member-mode.employment-survey-detail-page .member-back-link.employment-survey-back { width: 100%; }
}

/* 關鍵就業力課程問卷：隔離舊版 Bootstrap 按鈕設定。 */
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 10rem;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 1.35rem;
    border-radius: 999px;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    box-shadow: none;
}
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-member-primary {
    border: 1px solid var(--member-accent);
    background: var(--member-accent);
    color: #fff;
}
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-member-primary:hover,
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-member-primary:focus-visible {
    border-color: var(--member-accent-dark);
    background: var(--member-accent-dark);
    color: #fff;
    box-shadow: 0 5px 12px rgba(79,93,0,.24);
}
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-secondary,
.member-mode.key-employability-survey-detail-page .member-back-link.key-survey-back {
    border: 1px solid #8a756a;
    background: #fff;
    color: #5f4e46;
    box-shadow: none;
}
.member-mode.key-employability-survey-detail-page .member-back-link.key-survey-back::before { content: "←"; }
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-secondary:hover,
.member-mode.key-employability-survey-detail-page .journal-submit-actions .btn.btn-secondary:focus-visible,
.member-mode.key-employability-survey-detail-page .member-back-link.key-survey-back:hover,
.member-mode.key-employability-survey-detail-page .member-back-link.key-survey-back:focus-visible {
    border-color: #8a756a;
    background: #f5eee9;
    color: #493a34;
    text-decoration: none;
    box-shadow: none;
}
@media (max-width: 767.98px) {
    .member-mode.key-employability-survey-detail-page .journal-submit-actions .btn,
    .member-mode.key-employability-survey-detail-page .member-back-link.key-survey-back { width: 100%; }
}

/* 問卷列表卡片：行動版資料內容統一靠左。 */
@media (max-width: 767.98px) {
    .member-mode.survey-list-page .course-table tbody td {
        text-align: left !important;
    }
    .member-mode.survey-list-page .course-table tbody td.course-table__empty {
        text-align: center !important;
    }
}

/* 雙週誌列表共用骨架：各計畫只保留欄寬與特殊欄位差異。 */
.member-mode.journal-list-page .journal-list-table {
    width: 100%;
    min-width: 0;
}
.member-mode.journal-list-page .journal-list-table th,
.member-mode.journal-list-page .journal-list-table td {
    vertical-align: middle;
    overflow-wrap: anywhere;
}
.member-mode.journal-list-page .result-pagination .pageLink .pageStatus {
    border-color: var(--member-accent-dark);
    background: var(--member-accent-dark) !important;
    color: #fff !important;
    font-weight: 700;
    opacity: 1;
}
.member-mode.journal-list-page .result-pagination .pageLink .pageStatus * { color: #fff !important; }
@media (max-width: 767.98px) {
    .member-mode.journal-list-page .course-table-wrap {
        overflow: visible !important;
        background: transparent;
        box-shadow: none;
    }
    .member-mode.journal-list-page .journal-list-table,
    .member-mode.journal-list-page .journal-list-table tbody,
    .member-mode.journal-list-page .journal-list-table tr,
    .member-mode.journal-list-page .journal-list-table td {
        display: block;
        width: 100%;
        min-width: 0 !important;
    }
    .member-mode.journal-list-page .journal-list-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .member-mode.journal-list-page .journal-list-table tr {
        overflow: hidden;
        margin-bottom: 1rem;
        border: 1px solid #dce1c4;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 3px 10px rgba(86,55,36,.09);
    }
    .member-mode.journal-list-page .journal-list-table td {
        display: grid;
        grid-template-columns: minmax(7.5rem, 36%) minmax(0, 1fr);
        gap: .75rem;
        padding: .65rem .8rem;
        border: 0;
        border-bottom: 1px solid #eee4dc;
        background: #fff;
        text-align: left !important;
    }
    .member-mode.journal-list-page .journal-list-table td:last-child { border-bottom: 0; }
    .member-mode.journal-list-page .journal-list-table td::before {
        content: attr(data-label);
        color: var(--member-accent-dark);
        font-weight: 700;
    }
    .member-mode.journal-list-page .journal-list-table .course-table__empty {
        display: block;
        text-align: center !important;
    }
    .member-mode.journal-list-page .journal-list-table .course-table__empty::before { content: none; }
    .member-mode.journal-list-page .journal-list-table .btn-table { width: 100%; }
}

/* ypStayApply 基本資料：dl 與輸入欄位共用 registration-fields 外框及 label 基準。 */
.application-form-page .registration-fields > .registration-static-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
    margin: 0;
    padding: 0 0 1rem;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid #e3dcd7;
    border-radius: 0;
}
.application-form-page .registration-fields > .registration-static-grid > div,
.application-form-page .registration-fields > .registration-static-grid > .registration-static-grid__full {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
    align-items: start;
    gap: 1.25rem;
    min-width: 0;
    border: 0;
}
.application-form-page .registration-fields > .registration-static-grid dt {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 0;
    background: transparent;
    color: #5b3a2c;
    font-weight: 700;
    text-align: right;
}
.application-form-page .registration-fields > .registration-static-grid dd {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    width: min(36rem, 100%);
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem .75rem;
    border: 1px solid #ded8d3;
    border-radius: 8px;
    background: #f7f6f4;
    color: var(--text);
}
.application-form-page .registration-field--subsidy { padding-top: 1rem; border-top: 1px solid #e3dcd7; }
.stay-apply-detail-page .stay-subsidy-controls { display: grid; gap: .75rem; min-width: 0; margin: 0; }
.stay-apply-detail-page .stay-subsidy-question { margin: 0; line-height: 1.7; }
.stay-apply-detail-page .stay-subsidy-controls .registration-choice-grid { margin: 0; }
.stay-apply-detail-page .stay-subsidy-controls .journal-field-label { margin: .15rem 0 0; }
.stay-apply-detail-page .stay-subsidy-controls .stay-remark { width: 100%; }
@media (max-width: 767.98px) {
    .application-form-page .registration-fields > .registration-static-grid > div,
    .application-form-page .registration-fields > .registration-static-grid > .registration-static-grid__full { grid-template-columns: minmax(0, 1fr); gap: .35rem; }
    .application-form-page .registration-fields > .registration-static-grid dt { justify-content: flex-start; min-height: auto; padding: 0; text-align: left; }
    .application-form-page .registration-fields > .registration-static-grid dd { width: 100%; }
}

/* ypStayApply 應備文件與申請聲明：共用 registration-fields 外框。 */
.application-form-page .registration-document-fields .registration-section-hint { margin: 0; }
.application-form-page .registration-document-fields .registration-upload-grid { width: 100%; }
.application-form-page .registration-agreement-fields > .registration-agreement-copy {
    margin: 0;
    padding: 0 0 1rem;
    border: 0;
    border-bottom: 1px solid #e3dcd7;
    border-radius: 0;
    background: transparent;
}
.application-form-page .registration-agreement-fields > .registration-agreement-copy ol { margin: 0; }
.application-form-page .registration-field--agreement { padding-top: 1rem; }
.application-form-page .registration-field--agreement .registration-choice-grid { margin: 0; }

/* ypStayApply 申請人簽名：單一 registration-fields 外框，縮小簽名與 QR 圖示。 */
.application-form-page .registration-signature-fields .registration-signature-card {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.application-form-page .registration-signature-fields .signature-preview {
    width: min(22rem, 100%);
    margin: .75rem auto 0;
}
.application-form-page .registration-signature-fields .signature-preview img {
    width: 100%;
    aspect-ratio: 3 / 1;
    object-fit: contain;
}
.application-form-page .registration-signature-fields .registration-signature-pending {
    grid-template-columns: minmax(7rem, 9rem) minmax(0, 1fr);
}
.application-form-page .registration-signature-fields .registration-signature-pending > a { justify-self: center; width: 100%; max-width: 9rem; }
@media (max-width: 767.98px) {
    .application-form-page .registration-signature-fields .registration-signature-pending { grid-template-columns: minmax(0, 1fr); }
}

.application-form-page .registration-signature-fields .btn.btn-registration-secondary {
    display: inline-flex;
    float: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto;
    min-height: 2.75rem;
    margin: 0;
    padding: .55rem 1.15rem;
    border: 1px solid #8a756a;
    border-radius: 999px;
    background-color: #fff;
    background-image: none;
    color: #5f4e46;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
}
.application-form-page .registration-signature-fields .btn.btn-registration-secondary:hover,
.application-form-page .registration-signature-fields .btn.btn-registration-secondary:focus-visible {
    border-color: #4d5134;
    background-color: #f3f5e8;
    background-image: none;
    color: #4d5134;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(79,93,0,.14);
}
@media (max-width: 575.98px) {
    .application-form-page .registration-signature-fields .btn.btn-registration-secondary { width: 100%; }
}

/*
 * 共用查詢結果摘要（_ResultSummary）行動版：
 * 標題與條件靠左，清除按鈕固定在標題列右側。
 * 放在頁面個別規則之後，避免被清單頁的 flex 對齊設定覆蓋。
 */
@media (max-width: 640px) {
    .news-results__summary--responsive {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        text-align: left;
    }

    .news-results__summary--responsive .news-results__summary-body {
        display: contents;
    }

    .news-results__summary--responsive .news-results__summary-label {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        margin: 0;
        text-align: left;
    }

    .news-results__summary--responsive .news-results__summary-items {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        justify-self: stretch;
        gap: .3rem;
        margin-top: .45rem;
        text-align: left;
    }

    .news-results__summary--responsive .news-results__summary-item {
        text-align: left;
    }

    .news-results__summary--responsive .news-results__summary-item + .news-results__summary-item::before {
        content: none;
    }

    .news-results__summary--responsive .news-results__clear {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        justify-self: end;
        margin: 0;
    }
}

/* 首頁行動版外部查詢連結：保留按鈕右側的 CSS 箭頭，避免與文字旁圖示重複。 */
@media (max-width: 768px) {
    .hero-search .search-tabs > a .external-link-icon {
        display: none;
    }
}
