/* ==========================================================
   介面風格切換：經典（預設，style.css）／極光／雅緻
   用法：<html data-theme="aurora">、<html data-theme="elegant">
   原則：只換「外觀」，長者友善的字級、按鈕大小與對比不打折
   ========================================================== */

/* ---------- 切換按鈕（所有風格共用） ---------- */
.utility-tools { display: flex; align-items: center; gap: 14px; }
.theme-switch { position: relative; }
.ts-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px 0 8px;
  border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 999px; background: transparent; color: #fff;
  font: inherit; font-weight: 500; cursor: pointer; transition: background .2s;
}
.ts-btn:hover, .ts-btn[aria-expanded="true"] { background: rgba(255, 255, 255, .18); }
.ts-btn b { font-weight: 700; }
.ts-dot {
  width: 22px; height: 22px; border-radius: 50%; flex: none; border: 2px solid #fff;
  background: conic-gradient(var(--logo-green) 0 25%, var(--logo-yellow) 0 50%, var(--logo-magenta) 0 75%, var(--logo-purple) 0);
}
html[data-theme="aurora"] .ts-dot { background: conic-gradient(from 200deg, #3be0b0, #4a7dff, #a77bff, #3be0b0); }
html[data-theme="elegant"] .ts-dot { background: conic-gradient(#2e3b33 0 50%, #b08d57 0 75%, #efe7da 0); }
.ts-menu {
  position: absolute; right: 0; top: calc(100% + 10px); z-index: 120; width: 300px; padding: 8px;
  background: #fff; color: #1f1b26; border-radius: 18px; box-shadow: 0 18px 48px rgba(10, 16, 40, .28);
  display: grid; gap: 4px;
}
.ts-menu[hidden] { display: none; }
.ts-menu::before { content: ""; position: absolute; top: -7px; right: 28px; width: 14px; height: 14px; background: #fff; transform: rotate(45deg); border-radius: 3px; }
.ts-menu button {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 8px 12px;
  border: 2px solid transparent; border-radius: 14px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.ts-menu button:hover, .ts-menu button:focus-visible { background: #f4f0e8; outline: none; }
.ts-menu button[aria-checked="true"] { border-color: #0f6b44; background: #e9f5ee; }
.ts-menu button[aria-checked="true"]::after {
  content: "✓"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  width: 24px; height: 24px; border-radius: 50%; background: #0f6b44; color: #fff; font-size: .8rem; display: flex; align-items: center; justify-content: center;
}
.ts-txt { display: grid; line-height: 1.4; padding-right: 28px; }
.ts-txt strong { font-size: 1rem; }
.ts-txt small { font-size: .8rem; color: #57525f; }
.ts-prev { flex: none; width: 54px; height: 44px; border-radius: 10px; overflow: hidden; display: grid; grid-template-rows: 10px 1fr; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); }
.ts-prev i { display: block; }
.ts-prev i:nth-child(3) { display: none; }
.ts-prev-classic i:nth-child(1) { background: #0f6b44; }
.ts-prev-classic i:nth-child(2) { background: linear-gradient(90deg, #1ba640 0 25%, #f7c600 0 50%, #e4007f 0 75%, #8e1d82 0) top / 100% 4px no-repeat, #fbf9f5; }
.ts-prev-aurora i:nth-child(1) { background: #0b1035; }
.ts-prev-aurora i:nth-child(2) { background: radial-gradient(30px 18px at 30% 35%, rgba(59, 224, 176, .9), transparent 70%), radial-gradient(30px 20px at 75% 30%, rgba(167, 123, 255, .8), transparent 70%), linear-gradient(180deg, #1a2470, #3b2a8f); }
.ts-prev-elegant i:nth-child(1) { background: #2e3b33; }
.ts-prev-elegant i:nth-child(2) { background: linear-gradient(90deg, transparent 18%, #b08d57 18% 20%, transparent 20%), #f6f1e8; }

/* 切換時的柔和過渡 */
html.theme-anim body, html.theme-anim body * { transition: background-color .45s ease, color .45s ease, border-color .45s ease !important; }

/* Logo 深淺版本 */
.logo .on-dark, .pl-logo.on-dark { display: none; }
html[data-theme="aurora"] .logo .on-light, html[data-theme="aurora"] .pl-logo.on-light { display: none; }
html[data-theme="aurora"] .logo .on-dark { display: block; }
html[data-theme="aurora"] .pl-logo.on-dark { display: block; }

@media (max-width: 600px) {
  .ts-label { display: none; }
  .ts-btn { padding: 0 12px 0 6px; }
  .utility-tools { gap: 8px; width: 100%; justify-content: space-between; }
  .ts-menu { right: auto; left: 0; width: min(300px, calc(100vw - 32px)); }
  .ts-menu::before { right: auto; left: 22px; }
}

/* ==========================================================
   極光：夜空漸層、星光、玻璃質感、襯線標題
   ========================================================== */
html[data-theme="aurora"] {
  --ink: #f3f4ff;
  --ink-2: #dfe2fb;
  --muted: #b3b8de;
  --bg: #0b1035;
  --soft: #121a4a;
  --surface: #182160;
  --line: rgba(196, 204, 255, .22);
  --green: #46dbb0;          /* 極光綠：文字、連結、強調 */
  --green-600: #6ee6c4;
  --green-50: rgba(70, 219, 176, .12);
  --magenta: #ff7cc0;
  --purple: #b79bff;
  --yellow-50: rgba(247, 198, 0, .1);
  --cta: linear-gradient(135deg, #e0157f 0%, #8b3bd6 100%);
  --cta-hover: linear-gradient(135deg, #f0258f 0%, #9b4be6 100%);
  --stripe: linear-gradient(90deg, #3be0b0, #4a7dff 45%, #a77bff 75%, #ff7cc0);
  --shadow-sm: 0 2px 10px rgba(3, 6, 25, .35);
  --shadow: 0 10px 34px rgba(3, 6, 25, .45);
  --shadow-lg: 0 24px 56px rgba(3, 6, 25, .55);
  --on-accent: #07102e;      /* 極光綠底上的文字 */
  color-scheme: dark;
}
html[data-theme="aurora"] body {
  background:
    radial-gradient(1100px 520px at 12% -6%, rgba(59, 224, 176, .22), transparent 60%),
    radial-gradient(900px 500px at 92% 8%, rgba(120, 90, 255, .28), transparent 62%),
    linear-gradient(180deg, #0a0f30 0%, #141c58 34%, #2a2378 68%, #0d1236 100%) fixed;
}
/* 星點（固定在背景，緩慢閃爍） */
html[data-theme="aurora"] body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .75;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%, #fff 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 28% 62%, #fff 50%, transparent 51%),
    radial-gradient(1.8px 1.8px at 47% 12%, #fff 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 66% 44%, #fff 50%, transparent 51%),
    radial-gradient(1.6px 1.6px at 82% 22%, #fff 50%, transparent 51%),
    radial-gradient(1.1px 1.1px at 91% 70%, #fff 50%, transparent 51%),
    radial-gradient(1.3px 1.3px at 6% 84%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 56% 88%, #fff 50%, transparent 51%);
  background-size: 640px 640px;
  animation: auroraTwinkle 6s ease-in-out infinite alternate;
}
@keyframes auroraTwinkle { from { opacity: .45; } to { opacity: .85; } }
html[data-theme="aurora"] h1, html[data-theme="aurora"] h2, html[data-theme="aurora"] h3 { color: var(--ink); }
html[data-theme="aurora"] .section-head h2, html[data-theme="aurora"] .panel h2,
html[data-theme="aurora"] .finder-hero h1, html[data-theme="aurora"] .detail-hero h1 { font-family: var(--serif); letter-spacing: .1em; font-weight: 600; }

/* 頁首 */
html[data-theme="aurora"] .utility { background: #070b26; }
html[data-theme="aurora"] .site-header { background: rgba(9, 13, 42, .78); border-bottom: 1px solid rgba(255, 255, 255, .08); }
html[data-theme="aurora"] .site-header.is-scrolled { box-shadow: 0 8px 30px rgba(0, 0, 0, .45); }
html[data-theme="aurora"] .main-nav > a { color: var(--ink-2); }
html[data-theme="aurora"] .main-nav > a.is-active, html[data-theme="aurora"] .main-nav > a:hover { color: #fff; }
html[data-theme="aurora"] .nav-group-label { background: rgba(70, 219, 176, .14); color: #9ff0d6; }
html[data-theme="aurora"] .header-phone { color: #fff; }

/* 主視覺：加上極光光帶 */
html[data-theme="aurora"] .hero { background: #0b1035; }
html[data-theme="aurora"] .hero-media::after {
  background:
    radial-gradient(700px 260px at 70% 10%, rgba(59, 224, 176, .35), transparent 70%),
    linear-gradient(180deg, rgba(10, 15, 48, .55) 0%, rgba(20, 24, 88, .78) 60%, rgba(11, 16, 53, .96) 100%);
}
html[data-theme="aurora"] .hero h1 { letter-spacing: .14em; font-weight: 600; text-shadow: 0 0 28px rgba(120, 200, 255, .45); }
html[data-theme="aurora"] .hero-stats div { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .22); }
html[data-theme="aurora"] .eyebrow { color: #9ff0d6; }
html[data-theme="aurora"] .eyebrow-light { color: #ffe27a; }

/* 區塊標題：置中、細線裝飾（夜空風格的「標題＋英文副標」） */
html[data-theme="aurora"] .section-head { text-align: center; }
html[data-theme="aurora"] .section-head h2::after { margin: 16px auto 0; width: 140px; height: 2px; background: linear-gradient(90deg, transparent, #9ff0d6, transparent); }
html[data-theme="aurora"] .section-soft { background: rgba(255, 255, 255, .03); }

/* 卡片：上方照片漸層融入淡紫，下方淺色文字區（深字，閱讀清楚） */
html[data-theme="aurora"] .card, html[data-theme="aurora"] .program-card, html[data-theme="aurora"] .country-card {
  background: linear-gradient(180deg, #a7a4f2 0%, #d9d8fb 46%, #f4f3ff 100%);
  border: 1px solid rgba(255, 255, 255, .55); box-shadow: 0 16px 40px rgba(3, 6, 25, .45), inset 0 1px 0 rgba(255, 255, 255, .6);
  --ink: #1b1f4b; --ink-2: #2e3266; --muted: #4c5084; --green: #2346b8; --line: rgba(40, 50, 120, .18); --soft: #c9c7f5; color: #1b1f4b;
}
html[data-theme="aurora"] .card h3, html[data-theme="aurora"] .program-card h3, html[data-theme="aurora"] .country-card h3 { color: #1b1f4b; font-family: var(--serif); letter-spacing: .04em; }
html[data-theme="aurora"] .card-media::after, html[data-theme="aurora"] .program-media::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(167, 164, 242, .85));
}
html[data-theme="aurora"] .card:hover, html[data-theme="aurora"] .program-card:hover, html[data-theme="aurora"] .country-card:hover { box-shadow: 0 22px 54px rgba(3, 6, 25, .55), 0 0 0 2px rgba(159, 240, 214, .6); }

/* 一般面板：深色玻璃 */
html[data-theme="aurora"] .panel, html[data-theme="aurora"] .side-card, html[data-theme="aurora"] .faq-item,
html[data-theme="aurora"] .steps li, html[data-theme="aurora"] .about-card, html[data-theme="aurora"] .share-box,
html[data-theme="aurora"] .rec, html[data-theme="aurora"] .opt-box, html[data-theme="aurora"] .empty,
html[data-theme="aurora"] .compare-pick, html[data-theme="aurora"] .finder-summary, html[data-theme="aurora"] .chat-bubble,
html[data-theme="aurora"] .summary-facts > div, html[data-theme="aurora"] .cai-items li, html[data-theme="aurora"] .mn-prob, html[data-theme="aurora"] .mn-card {
  background: rgba(255, 255, 255, .07); border-color: rgba(196, 204, 255, .22);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
html[data-theme="aurora"] .panel-offer { background: linear-gradient(180deg, rgba(247, 198, 0, .12), rgba(255, 255, 255, .06) 160px); border-color: rgba(255, 226, 122, .7); }
html[data-theme="aurora"] .panel-story { background: linear-gradient(135deg, rgba(255, 124, 192, .1), rgba(167, 123, 255, .08)); }
html[data-theme="aurora"] .summary-panel { background: linear-gradient(180deg, rgba(70, 219, 176, .14), rgba(255, 255, 255, .05) 140px); }
html[data-theme="aurora"] .detail-hero, html[data-theme="aurora"] .finder-hero { background: radial-gradient(900px 340px at 85% -10%, rgba(59, 224, 176, .22), transparent 60%), radial-gradient(800px 380px at 0% 110%, rgba(167, 123, 255, .25), transparent 60%); }
html[data-theme="aurora"] .about-band { background: linear-gradient(135deg, rgba(70, 219, 176, .1), rgba(255, 255, 255, .02) 60%, rgba(167, 123, 255, .12)); }
html[data-theme="aurora"] .list-summary { background: rgba(255, 255, 255, .06); }
html[data-theme="aurora"] .finder-inline { background: rgba(70, 219, 176, .12); }
html[data-theme="aurora"] .finder-inline:hover { background: rgba(70, 219, 176, .2); }
html[data-theme="aurora"] .finder-band-in, html[data-theme="aurora"] .cta-band { background: linear-gradient(120deg, #13204f 0%, #22307e 50%, #3a2a8a 100%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
html[data-theme="aurora"] .cta-band::before { border-color: rgba(59, 224, 176, .16); }
html[data-theme="aurora"] .cta-band::after { border-color: rgba(167, 123, 255, .2); }
html[data-theme="aurora"] .rich td { border-color: rgba(196, 204, 255, .22); }
html[data-theme="aurora"] .rich tr:nth-child(even) td { background: rgba(255, 255, 255, .04); }

/* 按鈕：極光綠漸層＋深色字 */
html[data-theme="aurora"] .btn-primary { background: linear-gradient(135deg, #46dbb0 0%, #5fa8ff 100%); color: var(--on-accent); box-shadow: 0 8px 22px rgba(70, 219, 176, .3); }
html[data-theme="aurora"] .btn-primary:hover { background: linear-gradient(135deg, #6ee6c4 0%, #7cb9ff 100%); }
html[data-theme="aurora"] .btn-outline { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
html[data-theme="aurora"] .btn-outline:hover { background: #fff; color: var(--on-accent); border-color: #fff; }
html[data-theme="aurora"] .card .btn-outline, html[data-theme="aurora"] .program-card .btn-outline { color: #2346b8; border-color: #2346b8; }
html[data-theme="aurora"] .btn-cta { box-shadow: 0 10px 28px rgba(224, 21, 127, .4); }
html[data-theme="aurora"] .detail-hero .btn-glass { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }

/* 極光綠底的元件：文字改深色 */
html[data-theme="aurora"] .tab.is-on, html[data-theme="aurora"] .pager-num.is-on, html[data-theme="aurora"] .ps-item.is-on,
html[data-theme="aurora"] .pill-on, html[data-theme="aurora"] .share-copy.is-copied, html[data-theme="aurora"] .chip input:checked + span,
html[data-theme="aurora"] .chat-user .chat-bubble, html[data-theme="aurora"] .chat-suggest button:hover, html[data-theme="aurora"] button.cal-day.is-active,
html[data-theme="aurora"] .cal-time.is-chosen, html[data-theme="aurora"] .rich tr:first-child td, html[data-theme="aurora"] .rich th,
html[data-theme="aurora"] .menu-toggle[aria-expanded="true"], html[data-theme="aurora"] .lm-copy.is-copied, html[data-theme="aurora"] .mn-table thead th,
html[data-theme="aurora"] .opt input:checked + .opt-box .opt-icon, html[data-theme="aurora"] .opt input:checked + .opt-box .opt-flag { color: var(--on-accent); }
html[data-theme="aurora"] .highlights .ico, html[data-theme="aurora"] .about-points .ico, html[data-theme="aurora"] .rec-why .ico,
html[data-theme="aurora"] .ct-yes .ico { color: var(--on-accent); }

/* 表單、月曆 */
html[data-theme="aurora"] input, html[data-theme="aurora"] select, html[data-theme="aurora"] textarea { color-scheme: dark; }
html[data-theme="aurora"] .search input, html[data-theme="aurora"] .bk-grid input, html[data-theme="aurora"] .bk-grid select, html[data-theme="aurora"] .bk-grid textarea,
html[data-theme="aurora"] .slot-select select, html[data-theme="aurora"] .compare-pick select, html[data-theme="aurora"] .chat-form textarea, html[data-theme="aurora"] .share-url input {
  background: rgba(7, 11, 38, .6); color: #fff; border-color: rgba(196, 204, 255, .35);
}
html[data-theme="aurora"] .cal-nav, html[data-theme="aurora"] .cal-time, html[data-theme="aurora"] .ct-remove, html[data-theme="aurora"] .chat-suggest button { background: transparent; color: #fff; }
html[data-theme="aurora"] button.cal-day { background: rgba(70, 219, 176, .12); border-color: rgba(70, 219, 176, .45); color: #bff5e4; }
html[data-theme="aurora"] .cal-day.is-off { color: rgba(196, 204, 255, .35); }
html[data-theme="aurora"] .cl-dot.cl-off { background: transparent; }

/* 浮動元件與手機 */
html[data-theme="aurora"] .mobile-bar { background: rgba(9, 13, 42, .96); border-top: 1px solid rgba(255, 255, 255, .1); }
html[data-theme="aurora"] .mobile-bar a { color: #fff; }
html[data-theme="aurora"] .to-top::before { background: #141c58; }
html[data-theme="aurora"] .to-top { color: #9ff0d6; }
html[data-theme="aurora"] .compare-tray { background: rgba(9, 13, 42, .96); }
html[data-theme="aurora"] .chat-panel { background: #0f1645; border: 1px solid rgba(196, 204, 255, .2); }
html[data-theme="aurora"] .chat-head { background: linear-gradient(120deg, #13204f, #3a2a8a); }
html[data-theme="aurora"] .chat-form, html[data-theme="aurora"] .chat-foot { background: #0f1645; }
html[data-theme="aurora"] .chat-card { background: rgba(255, 255, 255, .07); }
html[data-theme="aurora"] .lm-box { background: #121a4a; color: var(--ink); }
html[data-theme="aurora"] .lm-close { background: transparent; color: #fff; }
html[data-theme="aurora"] .lm-col:first-child { background: rgba(70, 219, 176, .08); border-color: rgba(70, 219, 176, .6); }
html[data-theme="aurora"] .lm-text { background: rgba(7, 11, 38, .6); color: #fff; }
html[data-theme="aurora"] .compare-table th, html[data-theme="aurora"] .compare-table td { border-color: rgba(196, 204, 255, .2); }
html[data-theme="aurora"] .compare-table tbody th, html[data-theme="aurora"] .compare-table .ct-label { background: #121a4a; }
html[data-theme="aurora"] .compare-table thead th { background: #182160; }
html[data-theme="aurora"] .site-footer { background: #060920; }
html[data-theme="aurora"] .preloader { background: radial-gradient(600px 400px at 50% 45%, #1d2770 0%, #0b1035 70%); }
html[data-theme="aurora"] .mn-hero { background: linear-gradient(135deg, #13204f, #2a2378); }
html[data-theme="aurora"] .mn-alt { background: rgba(255, 255, 255, .03); }
html[data-theme="aurora"] .mn-table-wrap { background: rgba(255, 255, 255, .05); }
html[data-theme="aurora"] .mn-table tbody th { background: rgba(255, 255, 255, .05); }
html[data-theme="aurora"] .mn-table td:nth-child(2) { color: #ffb3d6; }
@media (max-width: 960px) {
  html[data-theme="aurora"] .site-header { background: #0a0f30; }
  html[data-theme="aurora"] .main-nav { background: #0b1035; }
  html[data-theme="aurora"] .menu-toggle { background: transparent; color: #fff; }
}
@media (prefers-reduced-motion: reduce) { html[data-theme="aurora"] body::before { animation: none; } }

/* ==========================================================
   雅緻：米白紙感、墨綠與古銅金、襯線字、留白與細線
   ========================================================== */
html[data-theme="elegant"] {
  --ink: #23201b;
  --ink-2: #3d382f;
  --muted: #5f584c;
  --bg: #f6f1e8;
  --soft: #efe7da;
  --surface: #fffdf8;
  --line: #ddd2bf;
  --green: #2e4a3c;
  --green-600: #3c5e4c;
  --green-50: #e9efe9;
  --magenta: #8c3b2f;
  --purple: #5b4a6b;
  --yellow-50: #f8f0dc;
  --cta: linear-gradient(135deg, #8c3b2f 0%, #6e2c24 100%);
  --cta-hover: linear-gradient(135deg, #9c4a3c 0%, #7c3a2f 100%);
  --stripe: linear-gradient(90deg, #2e4a3c 0 70%, #b08d57 70%);
  --radius: 6px;
  --radius-sm: 4px;
  --shadow-sm: 0 1px 0 rgba(35, 32, 27, .06);
  --shadow: 0 1px 0 rgba(35, 32, 27, .06), 0 10px 24px rgba(35, 32, 27, .06);
  --shadow-lg: 0 18px 40px rgba(35, 32, 27, .12);
}
html[data-theme="elegant"] body {
  background-color: var(--bg);
  background-image: radial-gradient(rgba(35, 32, 27, .035) 1px, transparent 1px);
  background-size: 4px 4px;
  letter-spacing: .04em;
}
html[data-theme="elegant"] h1, html[data-theme="elegant"] h2, html[data-theme="elegant"] h3 { font-family: var(--serif); font-weight: 700; letter-spacing: .08em; }
html[data-theme="elegant"] .utility { background: #23201b; }
html[data-theme="elegant"] .site-header { background: rgba(246, 241, 232, .95); border-bottom: 1px solid var(--line); }
html[data-theme="elegant"] .main-nav > a::after { height: 1px; background: #b08d57; }
html[data-theme="elegant"] .nav-group-label { background: transparent; border: 1px solid #b08d57; color: #8a6a3a; }
html[data-theme="elegant"] .eyebrow { color: #8a6a3a; letter-spacing: .3em; }
html[data-theme="elegant"] .eyebrow-light { color: #e8d3a8; }
html[data-theme="elegant"] .hero-media::after { background: linear-gradient(100deg, rgba(25, 30, 26, .88) 0%, rgba(25, 30, 26, .62) 50%, rgba(25, 30, 26, .2) 100%); }
html[data-theme="elegant"] .hero h1 { letter-spacing: .16em; font-weight: 600; }
html[data-theme="elegant"] .hero-stats div { border-radius: 2px; background: transparent; border: 1px solid rgba(232, 211, 168, .6); }
html[data-theme="elegant"] .section-head { text-align: center; }
html[data-theme="elegant"] .section-head h2 { font-weight: 600; }
html[data-theme="elegant"] .section-head h2::after { margin: 18px auto 0; width: 48px; height: 1px; background: #b08d57; box-shadow: 0 4px 0 #b08d57; }
html[data-theme="elegant"] .card, html[data-theme="elegant"] .program-card, html[data-theme="elegant"] .country-card,
html[data-theme="elegant"] .panel, html[data-theme="elegant"] .side-card, html[data-theme="elegant"] .faq-item, html[data-theme="elegant"] .rec,
html[data-theme="elegant"] .steps li, html[data-theme="elegant"] .about-card, html[data-theme="elegant"] .share-box, html[data-theme="elegant"] .opt-box {
  border: 1px solid var(--line); box-shadow: none;
}
html[data-theme="elegant"] .card:hover, html[data-theme="elegant"] .program-card:hover, html[data-theme="elegant"] .country-card:hover { box-shadow: var(--shadow-lg); border-color: #b08d57; }
html[data-theme="elegant"] .card-media img, html[data-theme="elegant"] .program-media img { filter: saturate(.82) contrast(1.02); }
html[data-theme="elegant"] .card:hover .card-media img { filter: none; }
html[data-theme="elegant"] .panel h2::before { width: 3px; border-radius: 0; background: #b08d57; }
html[data-theme="elegant"] .btn { border-radius: 4px; letter-spacing: .12em; }
html[data-theme="elegant"] .btn-primary { background: var(--green); box-shadow: none; }
html[data-theme="elegant"] .btn-cta { box-shadow: none; }
html[data-theme="elegant"] .btn-outline { background: transparent; }
html[data-theme="elegant"] .tab, html[data-theme="elegant"] .chip span, html[data-theme="elegant"] .pager-num, html[data-theme="elegant"] .ps-item { border-radius: 4px; }
html[data-theme="elegant"] .cta-band, html[data-theme="elegant"] .finder-band-in { background: linear-gradient(120deg, #1f2b24, #2e4a3c); }
html[data-theme="elegant"] .cta-band::before { border-color: rgba(176, 141, 87, .18); }
html[data-theme="elegant"] .cta-band::after { border-color: rgba(176, 141, 87, .12); }
html[data-theme="elegant"] .detail-hero, html[data-theme="elegant"] .finder-hero { background: linear-gradient(180deg, #efe7da, var(--bg)); }
html[data-theme="elegant"] .about-band { background: #efe7da; }
html[data-theme="elegant"] .panel-offer { border-color: #b08d57; }
html[data-theme="elegant"] .panel-story { background: #fbf6ee; }
html[data-theme="elegant"] .list-summary { border-left-color: #b08d57; }
html[data-theme="elegant"] .rec:first-child { border-color: #b08d57; }
html[data-theme="elegant"] .site-footer { background: #1d1b17; }
html[data-theme="elegant"] .fc-title { color: #d8bd8a; }
html[data-theme="elegant"] .steps li .step-no { background: var(--green) !important; }
html[data-theme="elegant"] .mn-hero { background: linear-gradient(135deg, #1f2b24, #2e4a3c); }
html[data-theme="elegant"] .ts-menu button[aria-checked="true"] { border-color: #2e4a3c; }

/* 補強：卡片上的「加入比較」 */
html[data-theme="aurora"] .compare-toggle-card { color: #1b1f4b; }
html[data-theme="aurora"] .compare-toggle-card.is-on { color: #fff; background: #6a4fd6; }
html[data-theme="aurora"] .compare-ai { background: linear-gradient(135deg, rgba(70, 219, 176, .14), rgba(255, 255, 255, .05)); }
html[data-theme="aurora"] .cai-items li { background: rgba(255, 255, 255, .06); }
html[data-theme="aurora"] .ctr-item { background: rgba(255, 255, 255, .12); color: #fff; }
html[data-theme="aurora"] .gallery-zoom { color: #1b1f4b; }
html[data-theme="aurora"] .btn-line-soft { background: transparent; color: #7cf0a8; border-color: #06c755; }
html[data-theme="aurora"] .highlights li { background: rgba(255, 255, 255, .05); }
html[data-theme="aurora"] .bk-summary { background: rgba(255, 255, 255, .06); }
html[data-theme="elegant"] .compare-ai { background: linear-gradient(135deg, var(--green-50), var(--surface)); }
html[data-theme="elegant"] .ctr-item { background: var(--soft); }
html[data-theme="aurora"] .ctr-item button, html[data-theme="aurora"] .lb-close:hover { color: #1b1f4b; }
html[data-theme="aurora"] .contact-tile { color: #1b1f4b; --ink: #1b1f4b; --muted: #4c5084; --green: #2346b8; }


/* 工具列：按鈕文字不折行；手機放大字級時工具列維持固定大小（避免擠在一起） */
.ts-btn, .fs-switch button, .fs-label { white-space: nowrap; }
html[data-theme="aurora"] .fs-switch button[aria-pressed="true"] { color: #0b1035; }
html[data-theme="elegant"] .fs-switch button[aria-pressed="true"] { color: #23201b; }
@media (max-width: 600px) {
  html.fs-lg .utility, html.fs-xl .utility { font-size: 15px; }
  html.fs-lg .ts-menu, html.fs-xl .ts-menu { font-size: 17px; }
  .fs-switch button { min-width: 44px; padding: 0 8px; }
}
@media (max-width: 374px) {
  .fs-label { font-size: 0; gap: 0; margin-right: 0; }
  .fs-label .ico { font-size: 15px; width: 18px; height: 18px; }
}

/* 列印時一律用淺色（省墨、清楚） */
@media print {
  html[data-theme="aurora"] { --ink: #1f1b26; --ink-2: #3a3542; --muted: #57525f; --bg: #fff; --soft: #f4f0e8; --surface: #fff; --line: #e5ded1; --green: #0f6b44; --green-50: #e9f5ee; --magenta: #c4006a; color-scheme: light; }
  html[data-theme="aurora"] body { background: #fff !important; }
  html[data-theme="aurora"] body::before { display: none; }
  html[data-theme="aurora"] .panel, html[data-theme="aurora"] .mn-prob, html[data-theme="aurora"] .mn-card { background: #fff; }
}
html[data-theme="aurora"] .lv-low { color: #0f6b44; }

/* ==========================================================
   登機證：機場指標的黑底黃字、出發看板翻牌、登機證卡片、護照章
   ========================================================== */
.fboard, .bp-stub, .bp-pass { display: none; }
.ts-prev-boarding i:nth-child(1) { background: repeating-linear-gradient(135deg, #ffd400 0 5px, #16171b 5px 10px); }
.ts-prev-boarding i:nth-child(2) { background: linear-gradient(90deg, transparent 62%, #16171b 62% 64%, transparent 64%), linear-gradient(180deg, #16171b 0 34%, #f6f2e4 34%); }
html[data-theme="boarding"] .ts-dot { background: repeating-linear-gradient(135deg, #ffd400 0 4px, #16171b 4px 8px); }

html[data-theme="boarding"] {
  --ink: #f4f3ee;
  --ink-2: #e0ded6;
  --muted: #aeb0b8;
  --bg: #16171b;
  --soft: #1e2026;
  --surface: #23252c;
  --line: #3a3d46;
  --green: #ffd400;          /* 機場黃：強調、連結 */
  --green-600: #ffe14d;
  --green-50: rgba(255, 212, 0, .1);
  --magenta: #ff8a5b;
  --purple: #8fb4ff;
  --yellow-50: rgba(255, 212, 0, .08);
  --cta: #ffd400;
  --cta-hover: #ffe14d;
  --stripe: repeating-linear-gradient(135deg, #ffd400 0 10px, #16171b 10px 20px);
  --radius: 10px;
  --shadow-sm: 0 2px 10px rgba(0, 0, 0, .35);
  --shadow: 0 10px 30px rgba(0, 0, 0, .45);
  --shadow-lg: 0 22px 50px rgba(0, 0, 0, .55);
  --on-accent: #111214;
  --paper: #f7f3e6;
  --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Roboto Mono", monospace;
  color-scheme: dark;
}
html[data-theme="boarding"] body {
  background-color: #16171b;
  background-image: linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px);
  background-size: 48px 48px;
}
html[data-theme="boarding"] h1, html[data-theme="boarding"] h2, html[data-theme="boarding"] h3 { color: var(--ink); letter-spacing: .04em; }
html[data-theme="boarding"] .eyebrow { font-family: var(--mono); color: #ffd400; letter-spacing: .2em; }
html[data-theme="boarding"] .eyebrow::before { content: "GATE · "; opacity: .7; }
html[data-theme="boarding"] .eyebrow-light { color: #ffd400; }

/* 頁首：黑色機場指標＋跑道燈底線 */
html[data-theme="boarding"] .logo .on-light, html[data-theme="boarding"] .pl-logo.on-light { display: none; }
html[data-theme="boarding"] .logo .on-dark, html[data-theme="boarding"] .pl-logo.on-dark { display: block; }
html[data-theme="boarding"] .utility { background: #0b0c0e; }
html[data-theme="boarding"] .site-header { background: rgba(15, 16, 19, .95); border-bottom: 1px solid #2a2c33; }
html[data-theme="boarding"] .main-nav > a { color: #e0ded6; }
html[data-theme="boarding"] .main-nav > a.is-active, html[data-theme="boarding"] .main-nav > a:hover { color: #fff; }
html[data-theme="boarding"] .main-nav > a::after { height: 3px; background: radial-gradient(circle, #ffd400 1.4px, transparent 1.8px) 0 50% / 8px 3px repeat-x; }
html[data-theme="boarding"] .nav-group-label { background: #ffd400; color: #111214; border-radius: 4px; }
html[data-theme="boarding"] .nav-finder, html[data-theme="boarding"] .main-nav > a.nav-finder { color: #ffd400; }
html[data-theme="boarding"] .header-phone { color: #fff; }
html[data-theme="boarding"] .fs-switch button[aria-pressed="true"] { color: #111214; }

/* 主視覺＋出發看板 */
html[data-theme="boarding"] .hero { background: #0b0c0e; }
html[data-theme="boarding"] .hero-media img { filter: grayscale(.35) contrast(1.05); }
html[data-theme="boarding"] .hero-media::after { background: linear-gradient(100deg, rgba(11, 12, 14, .94) 0%, rgba(11, 12, 14, .78) 50%, rgba(11, 12, 14, .45) 100%); }
html[data-theme="boarding"] .hero h1 { font-family: var(--sans); font-weight: 700; letter-spacing: .06em; }
html[data-theme="boarding"] .hero-stats { display: none; }
html[data-theme="boarding"] .fboard {
  display: block; margin-top: 36px; max-width: 720px; background: #0b0c0e; border: 2px solid #2a2c33; border-radius: 14px;
  padding: 14px 16px 10px; box-shadow: 0 18px 40px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.fb-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 6px 10px; border-bottom: 2px solid #ffd400; margin-bottom: 6px; }
.fb-title { font-family: var(--mono); font-weight: 700; font-size: 1.15rem; color: #ffd400; letter-spacing: .14em; }
.fb-title em { font-style: normal; font-family: var(--sans); font-size: .9rem; color: #fff; margin-left: 8px; letter-spacing: .1em; }
.fb-from { font-family: var(--mono); font-size: .85rem; color: #aeb0b8; letter-spacing: .1em; }
.fb-row { display: grid; grid-template-columns: 1.1fr 2fr 1.1fr 1fr; align-items: center; gap: 10px; min-height: 52px; padding: 4px 6px; border-radius: 8px; color: #fff; text-decoration: none; border-bottom: 1px dashed #2a2c33; }
.fb-row:last-child { border-bottom: 0; }
a.fb-row:hover { background: rgba(255, 212, 0, .08); }
.fb-th { min-height: 32px; font-size: .78rem; color: #aeb0b8; letter-spacing: .1em; border-bottom: 0; }
.fb-fl, .fb-dest b, .fb-n b { font-family: var(--mono); font-weight: 700; color: #ffd400; }
.fb-dest { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.fb-n { display: flex; align-items: center; gap: 4px; }
.fb-st { font-weight: 700; color: #7ee08a; }
.fb-row.is-here .fb-st { color: #111214; background: #ffd400; border-radius: 4px; padding: 2px 8px; justify-self: start; animation: fbBlink 1.6s steps(1) infinite; }
@keyframes fbBlink { 50% { background: #ffe878; } }
.sf { display: inline-block; min-width: .78em; text-align: center; margin: 0 1px; padding: 0 .08em; border-radius: 3px; background: linear-gradient(180deg, #2b2d34 0 49%, #0b0c0e 49% 52%, #24262c 52%); color: #ffd400; line-height: 1.5; }
.sf.fa { animation: sfA .07s linear; } .sf.fb { animation: sfB .07s linear; }
@keyframes sfA { from { transform: rotateX(70deg); } to { transform: none; } }
@keyframes sfB { from { transform: rotateX(70deg); } to { transform: none; } }

/* 區塊標題：機場指示牌 */
html[data-theme="boarding"] .section-head h2 { display: inline-block; font-family: var(--sans); background: #ffd400; color: #111214; padding: .18em .6em; border-radius: 6px; font-size: clamp(1.4rem, 2.6vw, 1.8rem); }
html[data-theme="boarding"] .section-head h2::after { display: none; }
html[data-theme="boarding"] .section-soft { background: #1b1c21; }

/* 登機證卡片：紙質、撕線、圓形缺口 */
html[data-theme="boarding"] .card, html[data-theme="boarding"] .program-card, html[data-theme="boarding"] .country-card {
  background: transparent; box-shadow: 0 14px 34px rgba(0, 0, 0, .45); border: 0; border-radius: 12px;
  --ink: #17181c; --ink-2: #2c2d33; --muted: #5d5f68; --green: #1a1b1f; --line: rgba(0, 0, 0, .14); --soft: #e9e3cf; color: #17181c;
}
html[data-theme="boarding"] .card-body, html[data-theme="boarding"] .program-body, html[data-theme="boarding"] .country-body {
  position: relative; background:
    radial-gradient(circle at 0 0, transparent 11px, var(--paper) 11.5px) 0 0 / 51% 100% no-repeat,
    radial-gradient(circle at 100% 0, transparent 11px, var(--paper) 11.5px) 100% 0 / 51% 100% no-repeat;
  border-top: 2px dashed #b9b29a;
}
html[data-theme="boarding"] .card-media, html[data-theme="boarding"] .program-media { border-radius: 12px 12px 0 0; }
html[data-theme="boarding"] .country-card { background: var(--paper); }
html[data-theme="boarding"] .country-card .country-body { background: var(--paper); border-top: 0; border-left: 2px dashed #b9b29a; }
html[data-theme="boarding"] .card-title, html[data-theme="boarding"] .program-card h3, html[data-theme="boarding"] .country-card h3 { color: #17181c; }
html[data-theme="boarding"] .bp-stub { display: flex; align-items: center; gap: 8px; margin: -2px 0 10px; font-family: var(--mono); font-weight: 700; font-size: 1.25rem; letter-spacing: .06em; color: #17181c; }
.bp-stub i { flex: 1; height: 2px; background: radial-gradient(circle, #8a8470 1px, transparent 1.4px) 0 50% / 6px 2px repeat-x; position: relative; }
.bp-stub i::after { content: "✈"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -54%); font-size: .9rem; color: #17181c; background: var(--paper); padding: 0 4px; }
.bp-stub em { font-style: normal; font-family: var(--sans); font-size: .72rem; font-weight: 700; background: #17181c; color: #ffd400; padding: 2px 8px; border-radius: 4px; letter-spacing: .08em; }
html[data-theme="boarding"] .card-cat { font-family: var(--mono); font-size: .78rem; letter-spacing: .06em; color: #5d5f68; }
html[data-theme="boarding"] .card-more { color: #17181c; font-weight: 700; }
html[data-theme="boarding"] .card-more::before { content: "BOARDING "; font-family: var(--mono); letter-spacing: .1em; }
html[data-theme="boarding"] .card:hover { transform: translateY(-6px) rotate(-.6deg); box-shadow: 0 22px 46px rgba(0, 0, 0, .55), 0 0 0 3px #ffd400; }
html[data-theme="boarding"] .program-card:hover, html[data-theme="boarding"] .country-card:hover { box-shadow: 0 22px 46px rgba(0, 0, 0, .55), 0 0 0 3px #ffd400; }
html[data-theme="boarding"] .program-card .btn { background: #17181c; color: #ffd400; }

/* 護照章：熱門推薦、已加入比較 */
html[data-theme="boarding"] .badge {
  background: rgba(255, 255, 255, .9); color: #c8321f; border: 3px double #c8321f; border-radius: 50%;
  width: 74px; height: 74px; padding: 0; display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: .78rem; font-weight: 900; letter-spacing: .06em; transform: rotate(-14deg); box-shadow: none; line-height: 1.2;
  animation: stampIn .5s cubic-bezier(.2, 1.6, .4, 1) both;
}
@keyframes stampIn { from { transform: scale(1.8) rotate(-30deg); opacity: 0; } to { transform: rotate(-14deg); opacity: 1; } }
html[data-theme="boarding"] .compare-toggle-card { color: #17181c; }
html[data-theme="boarding"] .compare-toggle-card.is-on { background: rgba(255, 255, 255, .92); color: #1f6b3a; border: 3px double #1f6b3a; transform: rotate(-6deg); }

/* 面板與內容 */
html[data-theme="boarding"] .panel, html[data-theme="boarding"] .side-card, html[data-theme="boarding"] .faq-item, html[data-theme="boarding"] .steps li,
html[data-theme="boarding"] .about-card, html[data-theme="boarding"] .share-box, html[data-theme="boarding"] .rec, html[data-theme="boarding"] .opt-box,
html[data-theme="boarding"] .empty, html[data-theme="boarding"] .compare-pick, html[data-theme="boarding"] .finder-summary, html[data-theme="boarding"] .chat-bubble,
html[data-theme="boarding"] .summary-facts > div, html[data-theme="boarding"] .cai-items li, html[data-theme="boarding"] .mn-prob, html[data-theme="boarding"] .mn-card,
html[data-theme="boarding"] .highlights li, html[data-theme="boarding"] .bk-summary, html[data-theme="boarding"] .list-summary { background: #202228; border-color: #3a3d46; }
html[data-theme="boarding"] .panel h2::before { background: #ffd400; border-radius: 2px; }
html[data-theme="boarding"] .side-card dt, html[data-theme="boarding"] .side-card th { font-family: var(--mono); letter-spacing: .08em; color: #aeb0b8; }
html[data-theme="boarding"] .side-card h2, html[data-theme="boarding"] .side-card h3 { font-family: var(--mono); letter-spacing: .12em; color: #ffd400; }
html[data-theme="boarding"] .panel-offer { background: linear-gradient(180deg, rgba(255, 212, 0, .12), #202228 160px); border-color: #ffd400; }
html[data-theme="boarding"] .panel-story, html[data-theme="boarding"] .summary-panel { background: #202228; }
html[data-theme="boarding"] .summary-panel { border-color: #ffd400; }
html[data-theme="boarding"] .detail-hero, html[data-theme="boarding"] .finder-hero { background: linear-gradient(180deg, #0f1013, #16171b); border-bottom: 1px solid #2a2c33; }
html[data-theme="boarding"] .about-band { background: #1b1c21; }
html[data-theme="boarding"] .finder-inline { background: rgba(255, 212, 0, .1); }
html[data-theme="boarding"] .finder-band-in, html[data-theme="boarding"] .cta-band { background: repeating-linear-gradient(135deg, rgba(255, 212, 0, .06) 0 18px, transparent 18px 36px), #0f1013; box-shadow: inset 0 0 0 2px #2a2c33; }
html[data-theme="boarding"] .cta-band::before, html[data-theme="boarding"] .cta-band::after { border-color: rgba(255, 212, 0, .1); }
html[data-theme="boarding"] .rich td { border-color: #3a3d46; }
html[data-theme="boarding"] .rich tr:nth-child(even) td { background: rgba(255, 255, 255, .03); }
html[data-theme="boarding"] .compare-ai { background: #202228; border-color: #ffd400; }
html[data-theme="boarding"] .compare-table th, html[data-theme="boarding"] .compare-table td { border-color: #3a3d46; }
html[data-theme="boarding"] .compare-table tbody th, html[data-theme="boarding"] .compare-table .ct-label { background: #1b1c21; }
html[data-theme="boarding"] .compare-table thead th { background: #23252c; }
html[data-theme="boarding"] .contact-tile { color: #17181c; --ink: #17181c; --muted: #5d5f68; --green: #17181c; background: var(--paper); }
html[data-theme="boarding"] .gallery-zoom, html[data-theme="boarding"] .ctr-item button, html[data-theme="boarding"] .lb-close:hover { color: #17181c; }
html[data-theme="boarding"] .ctr-item { background: #2a2c33; color: #fff; }

/* 按鈕：黃底黑字（像機場指標） */
html[data-theme="boarding"] .btn { border-radius: 8px; }
html[data-theme="boarding"] .btn-cta { color: #111214; box-shadow: 0 8px 22px rgba(255, 212, 0, .25); }
html[data-theme="boarding"] .btn-cta:hover { color: #111214; }
html[data-theme="boarding"] .btn-primary { background: #fff; color: #111214; box-shadow: none; }
html[data-theme="boarding"] .btn-primary:hover { background: #ffd400; }
html[data-theme="boarding"] .btn-outline, html[data-theme="boarding"] .btn-glass, html[data-theme="boarding"] .detail-hero .btn-glass { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
html[data-theme="boarding"] .btn-outline:hover, html[data-theme="boarding"] .btn-glass:hover { background: #fff; color: #111214; border-color: #fff; }
html[data-theme="boarding"] .card .btn-outline, html[data-theme="boarding"] .program-card .btn-outline { color: #17181c; border-color: #17181c; }
html[data-theme="boarding"] .btn-line-soft { background: transparent; color: #7cf0a8; }
html[data-theme="boarding"] .btn-shine::after { display: none; }

/* 黃色底的元件：黑字 */
html[data-theme="boarding"] .tab.is-on, html[data-theme="boarding"] .pager-num.is-on, html[data-theme="boarding"] .ps-item.is-on,
html[data-theme="boarding"] .pill-on, html[data-theme="boarding"] .share-copy.is-copied, html[data-theme="boarding"] .chip input:checked + span,
html[data-theme="boarding"] .chat-user .chat-bubble, html[data-theme="boarding"] .chat-suggest button:hover, html[data-theme="boarding"] button.cal-day.is-active,
html[data-theme="boarding"] .cal-time.is-chosen, html[data-theme="boarding"] .rich tr:first-child td, html[data-theme="boarding"] .rich th,
html[data-theme="boarding"] .menu-toggle[aria-expanded="true"], html[data-theme="boarding"] .lm-copy.is-copied, html[data-theme="boarding"] .mn-table thead th,
html[data-theme="boarding"] .opt input:checked + .opt-box .opt-icon, html[data-theme="boarding"] .opt input:checked + .opt-box .opt-flag,
html[data-theme="boarding"] .highlights .ico, html[data-theme="boarding"] .about-points .ico, html[data-theme="boarding"] .rec-why .ico,
html[data-theme="boarding"] .ct-yes .ico, html[data-theme="boarding"] .faq-q, html[data-theme="boarding"] .chat-launch, html[data-theme="boarding"] .lv-low,
html[data-theme="boarding"] .mobile-bar .mb-main, html[data-theme="boarding"] .bk-grid em, html[data-theme="boarding"] .bk-checks em { color: #111214; }
html[data-theme="boarding"] .rec-rank { background: #ffd400; color: #111214; font-family: var(--mono); }
html[data-theme="boarding"] .rec-rank::before { content: "SEAT "; }

/* 表單、月曆 */
html[data-theme="boarding"] .search input, html[data-theme="boarding"] .bk-grid input, html[data-theme="boarding"] .bk-grid select, html[data-theme="boarding"] .bk-grid textarea,
html[data-theme="boarding"] .slot-select select, html[data-theme="boarding"] .compare-pick select, html[data-theme="boarding"] .chat-form textarea, html[data-theme="boarding"] .share-url input,
html[data-theme="boarding"] .lm-text { background: #0f1013; color: #fff; border-color: #4a4d57; }
html[data-theme="boarding"] .cal-nav, html[data-theme="boarding"] .cal-time, html[data-theme="boarding"] .ct-remove, html[data-theme="boarding"] .chat-suggest button { background: transparent; color: #fff; }
html[data-theme="boarding"] .cal-time { border-color: #ffd400; font-family: var(--mono); }
html[data-theme="boarding"] button.cal-day { background: transparent; border-color: #ffd400; color: #ffd400; font-family: var(--mono); }
html[data-theme="boarding"] .cal-day.is-off { color: #4d505a; }
html[data-theme="boarding"] .cl-dot.cl-off { background: transparent; }
html[data-theme="boarding"] .bk-hero h1::before { content: "CHECK-IN 報到櫃台"; display: block; width: max-content; font-family: var(--mono); font-size: .9rem; letter-spacing: .14em; color: #111214; background: #ffd400; padding: 2px 10px; border-radius: 4px; margin-bottom: 10px; }

/* 進度條：小飛機沿航線前進 */
html[data-theme="boarding"] .finder-progress { overflow: visible; background: radial-gradient(circle, #4a4d57 1.5px, transparent 2px) 0 50% / 10px 10px repeat-x; height: 10px; }
html[data-theme="boarding"] .fp-bar { position: relative; background: #ffd400; height: 4px; margin-top: 3px; }
html[data-theme="boarding"] .fp-bar::after { content: "✈"; position: absolute; right: -10px; top: 50%; transform: translateY(-54%); font-size: 22px; line-height: 1; color: #ffd400; }

/* 回到頁首：飛機起飛 */
html[data-theme="boarding"] .to-top { color: #111214; }
html[data-theme="boarding"] .to-top::before { background: #ffd400; }
html[data-theme="boarding"] .to-top .ico { display: none; }
html[data-theme="boarding"] .to-top::after { content: "✈"; position: relative; z-index: 1; display: block; font-size: 22px; line-height: 1; transform: rotate(-45deg); order: -1; }
html[data-theme="boarding"] .to-top.takeoff::after { animation: takeoff 1s cubic-bezier(.5, 0, .7, .4) forwards; }
@keyframes takeoff { 0% { transform: rotate(-45deg); } 30% { transform: translate(-2px, 2px) rotate(-45deg); } 100% { transform: translate(60px, -120px) rotate(-45deg) scale(.6); opacity: 0; } }

/* 預約成功：登機證 */
html[data-theme="boarding"] .bk-done-icon { display: none; }
html[data-theme="boarding"] .bp-pass {
  display: grid; grid-template-columns: 1fr auto; grid-template-areas: "top top" "route qr"; gap: 14px 20px; align-items: center;
  max-width: 640px; margin: 0 auto 18px; padding: 20px 22px; border-radius: 16px; color: #17181c;
  background: radial-gradient(circle at 100% 50%, #16171b 13px, transparent 13.5px), radial-gradient(circle at 0 50%, #16171b 13px, transparent 13.5px), var(--paper);
}
.bp-pass-top { grid-area: top; display: flex; justify-content: space-between; font-family: var(--mono); font-weight: 700; letter-spacing: .12em; padding-bottom: 10px; border-bottom: 2px dashed #b9b29a; }
.bp-pass-top span:last-child { background: #17181c; color: #ffd400; padding: 0 8px; border-radius: 4px; }
.bp-pass-route { grid-area: route; display: flex; align-items: center; gap: 14px; font-family: var(--mono); }
.bp-pass-route small { display: block; font-size: .72rem; color: #5d5f68; letter-spacing: .12em; }
.bp-pass-route b { font-size: 2rem; letter-spacing: .06em; }
.bp-pass-route i { flex: 1; height: 2px; background: radial-gradient(circle, #8a8470 1px, transparent 1.4px) 0 50% / 6px 2px repeat-x; position: relative; min-width: 40px; }
.bp-pass-route i::after { content: "✈"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -54%); background: var(--paper, #f7f3e6); padding: 0 4px; }
.bp-pass-qr { grid-area: qr; width: 104px; height: 104px; background: #fff; border-radius: 8px; padding: 4px; }
.bp-pass-qr svg { width: 100%; height: 100%; display: block; }
html[data-theme="boarding"] .bk-done-card { background: #202228; border-color: #3a3d46; }
html[data-theme="boarding"] .bk-done-card dt { font-family: var(--mono); letter-spacing: .08em; }

/* 浮動元件與手機 */
html[data-theme="boarding"] .mobile-bar { background: #0f1013; border-top: 1px solid #2a2c33; }
html[data-theme="boarding"] .mobile-bar a { color: #fff; }
html[data-theme="boarding"] .compare-tray { background: #0f1013; border-top-color: #ffd400; }
html[data-theme="boarding"] .chat-panel { background: #16171b; border: 1px solid #3a3d46; }
html[data-theme="boarding"] .chat-head { background: #0f1013; border-bottom: 3px solid #ffd400; }
html[data-theme="boarding"] .chat-form, html[data-theme="boarding"] .chat-foot { background: #16171b; }
html[data-theme="boarding"] .chat-card { background: #202228; }
html[data-theme="boarding"] .lm-box { background: #1b1c21; color: var(--ink); }
html[data-theme="boarding"] .lm-close { background: transparent; color: #fff; }
html[data-theme="boarding"] .lm-col:first-child { background: rgba(255, 212, 0, .06); border-color: #ffd400; }
html[data-theme="boarding"] .site-footer { background: #0b0c0e; }
html[data-theme="boarding"] .preloader { background: #0b0c0e; }
html[data-theme="boarding"] .mn-hero { background: repeating-linear-gradient(135deg, rgba(255, 212, 0, .05) 0 18px, transparent 18px 36px), #0f1013; }
html[data-theme="boarding"] .mn-alt { background: #1b1c21; }
html[data-theme="boarding"] .mn-table-wrap { background: #202228; }
html[data-theme="boarding"] .mn-table tbody th { background: #1b1c21; }
html[data-theme="boarding"] .mn-table td:nth-child(2) { color: #ff9f86; }
@media (max-width: 960px) {
  html[data-theme="boarding"] .site-header { background: #0f1013; }
  html[data-theme="boarding"] .main-nav { background: #16171b; }
  html[data-theme="boarding"] .menu-toggle { background: transparent; color: #fff; }
}
@media (max-width: 600px) {
  html[data-theme="boarding"] .fboard { padding: 10px 10px 6px; margin-top: 26px; }
  .fb-row { grid-template-columns: 1fr 1.6fr 1.1fr; gap: 6px; font-size: .92rem; }
  .fb-row .fb-st, .fb-th span:nth-child(4) { display: none; }
  .fb-fl { font-size: .85rem; }
  .fb-title em { display: none; }
  html[data-theme="boarding"] .bp-pass { grid-template-columns: 1fr; grid-template-areas: "top" "route" "qr"; justify-items: center; padding: 18px 20px; }
  .bp-pass-top { width: 100%; flex-wrap: wrap; gap: 6px; font-size: .82rem; }
  .bp-pass-route b { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="boarding"] .badge, .fb-row.is-here .fb-st { animation: none; }
  html[data-theme="boarding"] .to-top.takeoff::after { animation: none; }
}
@media print {
  html[data-theme="boarding"] { --ink: #1f1b26; --ink-2: #3a3542; --muted: #57525f; --bg: #fff; --surface: #fff; --line: #e5ded1; --green: #0f6b44; color-scheme: light; }
  html[data-theme="boarding"] body { background: #fff !important; }
}
html[data-theme="boarding"] .bk-hero .eyebrow { display: none; }
/* 修正：項目卡片的按鈕在滑鼠移上去時，不能變成黃底黃字 */
html[data-theme="boarding"] .program-card .btn, html[data-theme="boarding"] .program-card:hover .program-body .btn { background: #17181c; color: #ffd400; border-color: #17181c; }
html[data-theme="boarding"] .program-card:hover .program-body .btn { background: #000; box-shadow: 0 0 0 3px #ffd400; }

/* ===== 對比度修正（全部風格） ===== */
/* LINE 綠按鈕：白字在原本的亮綠上對比不足，改深一階的綠（長輩較易閱讀） */
.btn-line { background: #078a3e; }
.btn-line:hover { background: #06a149; }
/* 步驟 2 的黃色圓圈改用深色數字 */
.steps li:nth-child(2) .step-no { color: #1f1b26; }
/* 第 1 名的黃色標籤一律深色字 */
.rec:first-child .rec-rank { color: #1f1b26; }

/* 深色風格（極光、登機證）補強 */
html[data-theme="aurora"] .faq-q, html[data-theme="aurora"] .chat-launch, html[data-theme="aurora"] .chat-launch-text,
html[data-theme="aurora"] .tab.is-on .tab-n, html[data-theme="aurora"] .ps-item.is-on small,
html[data-theme="boarding"] .chat-launch-text, html[data-theme="boarding"] .tab.is-on .tab-n, html[data-theme="boarding"] .ps-item.is-on small { color: #0b0c10; }
html[data-theme="aurora"] .tab.is-on .tab-n, html[data-theme="boarding"] .tab.is-on .tab-n { background: rgba(0, 0, 0, .12); }
html[data-theme="aurora"] .share-text { background: rgba(7, 11, 38, .6); color: #fff; border-color: rgba(196, 204, 255, .3); }
html[data-theme="boarding"] .share-text { background: #0f1013; color: #fff; border-color: #3a3d46; }
html[data-theme="aurora"] .line-preview .share-text, html[data-theme="boarding"] .line-preview .share-text { background: #fff; color: #1f1b26; }
html[data-theme="aurora"] .rec-rank { color: #0b0c10; }
html[data-theme="elegant"] .steps li:nth-child(2) .step-no { color: #fff; }
html[data-theme="aurora"] .mn-list code, html[data-theme="boarding"] .mn-list code { color: #1f1b26; }
html[data-theme="aurora"] .step-err, html[data-theme="boarding"] .step-err { background: rgba(255, 124, 192, .14); color: #ffc2de; border-color: rgba(255, 124, 192, .5); }
html[data-theme="boarding"] .opt input:checked + .opt-box { background: rgba(255, 212, 0, .14); border-color: #ffd400; }
html[data-theme="boarding"] .page-booking .bk-nav, html[data-theme="boarding"] body.page-booking .bk-nav { background: #0f1013; }
html[data-theme="aurora"] .bcard, html[data-theme="boarding"] .bcard { background: rgba(255, 255, 255, .06); }
html[data-theme="boarding"] .bcard { background: #202228; border-color: #3a3d46; }
html[data-theme="aurora"] .bpost-old, html[data-theme="boarding"] .bpost-old { background: rgba(255, 212, 0, .1); border-color: rgba(255, 212, 0, .4); }
html[data-theme="aurora"] .bpost-cta, html[data-theme="boarding"] .bpost-cta { background: rgba(255, 255, 255, .05); }
html[data-theme="boarding"] .bpost-cta { border-color: #ffd400; }
html[data-theme="boarding"] .bcard .card-more { color: #ffd400; }
