/* passenger-inline-fix.css — batch15 P4（裁示：乘客端內嵌樣式外移）
 * 記號：cyc-ride-ui151-p5-runtime-style-20260912
 * 🔴 前 4 段由 passenger.html 的 4 個 <style> **逐字**搬出（共 29 條），一字未改。
 *    原因：CSP style-src 'self' 一路擋著，這些規則自 r38x-hotfix19（7 月）起兩站都從未生效。
 * 🔴 第 5 段 .cyc-pool-sub 取代 passenger.js 的 style="font-size:20px"（style-src-attr 'none' 擋）。
 */

/* ── 原 <style id="cyc-hotfix19-fix4-negative-points">（passenger.html）── */
#balance.cyc-negative-points,
#homeBalanceValue.cyc-negative-points,
.cyc-negative-points { color: #c62828 !important; }

/* ── 原 <style id="cyc-hotfix19-fix8-login-guide">（passenger.html）── */
#passengerLoginGuideModal h2 {
  font-size: clamp(28px, 7vw, 36px) !important;
  line-height: 1.22 !important;
  font-weight: 800 !important;
}
#passengerLoginGuideModal .passenger-login-guide-content {
  font-size: clamp(17px, 4.45vw, 20px) !important;
  line-height: 1.58 !important;
  font-weight: 500 !important;
}
#passengerLoginGuideModal .passenger-login-guide-content p,
#passengerLoginGuideModal .passenger-login-guide-content li {
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 500 !important;
}
#passengerLoginGuideModal .passenger-login-guide-content b,
#passengerLoginGuideModal .passenger-login-guide-content strong {
  font-weight: 760 !important;
}
#passengerLoginGuideModal .passenger-login-guide-content h3 {
  margin: 0 0 10px !important;
  font-size: clamp(21px, 5.35vw, 25px) !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
}
#passengerLoginGuideModal .passenger-login-guide-content h4 {
  margin: 14px 0 7px !important;
  font-size: clamp(18px, 4.8vw, 21px) !important;
  line-height: 1.4 !important;
  font-weight: 760 !important;
}
#passengerLoginGuideModal .r38x-login-guide-intro {
  margin: 0 0 14px !important;
  font-weight: 650 !important;
}
#passengerLoginGuideModal .r38x-login-guide-section {
  margin: 0 0 14px !important;
  padding: 14px 15px !important;
  border: 1px solid rgba(70, 110, 170, 0.2);
  border-radius: 15px !important;
  background: rgba(239, 245, 255, 0.72);
}
#passengerLoginGuideModal .passenger-login-guide-content ol,
#passengerLoginGuideModal .passenger-login-guide-content ul {
  margin: 6px 0 10px !important;
  padding-left: 1.35em !important;
}
#passengerLoginGuideModal .passenger-login-guide-content li {
  margin: 4px 0 !important;
}
#passengerLoginGuideModal .r38x-guide-important,
#passengerLoginGuideModal .r38x-guide-important *,
#passengerLoginGuideModal .r38x-required-match-label {
  color: #c62828 !important;
  font-weight: 800 !important;
}
.r38x-login-guide-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 18px;
}
@media (max-width: 520px) {
  .r38x-login-guide-fields {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 430px) {
  #passengerLoginGuideModal .passenger-login-guide-content {
    font-size: 17px !important;
    line-height: 1.55 !important;
  }
  #passengerLoginGuideModal .r38x-login-guide-section {
    padding: 12px 13px !important;
  }
}

/* ── 原 <style id="cyc-hotfix19-fix9-first-login-gate">（passenger.html）── */
body.cyc-first-login-required .modal-backdrop:not(#firstLoginModal) {
  display: none !important;
}
body.cyc-first-login-required #firstLoginModal {
  display: flex !important;
  z-index: 100000 !important;
}
body.cyc-first-login-required #firstLoginModal.hidden {
  display: flex !important;
}
body.cyc-first-login-required #appCard > *:not(#firstLoginModal) {
  pointer-events: none;
}
body.cyc-first-login-required #firstLoginModal,
body.cyc-first-login-required #firstLoginModal * {
  pointer-events: auto;
}

/* ── 原 <style id="cyc-hotfix19-fix13-rev2-consent-absolute">（passenger.html）── */
#privacyConsentActions,#serviceConsentActions{
  display:block!important;
  position:relative!important;
  width:100%!important;
  height:66px!important;
  min-height:66px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
#privacyConsentActions>button,#serviceConsentActions>button{
  display:block!important;
  position:absolute!important;
  top:0!important;
  width:40%!important;
  min-width:0!important;
  max-width:40%!important;
  height:58px!important;
  margin:0!important;
  box-sizing:border-box!important;
  white-space:normal!important;
  line-height:1.2!important;
}
#privacyConsentActions>.consent-absolute-agree,#serviceConsentActions>.consent-absolute-agree{
  left:0!important;
  right:auto!important;
}
#privacyConsentActions>.consent-absolute-reject,#serviceConsentActions>.consent-absolute-reject{
  right:0!important;
  left:auto!important;
}
@media(max-width:430px){
  #privacyConsentActions>button,#serviceConsentActions>button{
    width:39%!important;
    max-width:39%!important;
    font-size:15px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}

/* ── batch15 P4：取代 passenger.js 掃碼結果卡「（家庭共用）」的 style="font-size:20px" ── */
.cyc-pool-sub{font-size:20px}

/* ══ batch15 P5：以下三段由「執行期 createElement('style') 注入」外移而來，逐字搬運 ══ */

/* ── 來源 id cyc-hotfix19-fix8-login-guide-visuals（r38x-hotfix16-family-link.js ensureLoginGuideVisualStyles）── */
      #passengerLoginGuideModal .modal-card,
      #passengerLoginGuideModal .v143-modal-card {
        max-width: min(760px, calc(100vw - 28px)) !important;
      }

      #passengerLoginGuideModal h2 {
        font-size: clamp(28px, 7vw, 36px) !important;
        line-height: 1.22 !important;
        font-weight: 800 !important;
        letter-spacing: 0 !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content {
        font-size: clamp(17px, 4.45vw, 20px) !important;
        line-height: 1.58 !important;
        font-weight: 500 !important;
        letter-spacing: 0 !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content p,
      #passengerLoginGuideModal .passenger-login-guide-content li {
        font-size: inherit !important;
        line-height: inherit !important;
        font-weight: 500 !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content b,
      #passengerLoginGuideModal .passenger-login-guide-content strong {
        font-weight: 760 !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content h3 {
        margin: 0 0 10px !important;
        font-size: clamp(21px, 5.35vw, 25px) !important;
        line-height: 1.35 !important;
        font-weight: 800 !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content h4 {
        margin: 14px 0 7px !important;
        font-size: clamp(18px, 4.8vw, 21px) !important;
        line-height: 1.4 !important;
        font-weight: 760 !important;
      }

      #passengerLoginGuideModal .r38x-login-guide-intro {
        margin: 0 0 14px !important;
        font-weight: 650 !important;
      }

      #passengerLoginGuideModal .r38x-login-guide-section {
        margin: 0 0 14px !important;
        padding: 14px 15px !important;
        border-radius: 15px !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content ol,
      #passengerLoginGuideModal .passenger-login-guide-content ul {
        margin: 6px 0 10px !important;
        padding-left: 1.35em !important;
      }

      #passengerLoginGuideModal .passenger-login-guide-content li {
        margin: 4px 0 !important;
      }

      #passengerLoginGuideModal .r38x-guide-important,
      #passengerLoginGuideModal .r38x-guide-important *,
      #passengerLoginGuideModal .r38x-required-match-label {
        color: #c62828 !important;
        font-weight: 800 !important;
      }

      #passengerLoginGuideModal .r38x-login-guide-help {
        margin-bottom: 0 !important;
      }

      @media (max-width: 430px) {
        #passengerLoginGuideModal .passenger-login-guide-content {
          font-size: 17px !important;
          line-height: 1.55 !important;
        }

        #passengerLoginGuideModal .r38x-login-guide-section {
          padding: 12px 13px !important;
        }
      }

/* ── 來源 id cyc-fix25-fix2-self-card-claim-styles（r38x-hotfix16-family-link.js ensureSelfCardClaimStyles）── */
      #firstLoginSelfCardClaimModal .r38x-self-card-card { max-width:min(820px,calc(100vw - 24px)); max-height:min(88vh,900px); overflow:auto; }
      #firstLoginSelfCardClaimModal .r38x-self-card-target { padding:12px 14px; border:1px solid #c8b6ff; border-radius:14px; background:#faf7ff; margin:10px 0 14px; }
      #firstLoginSelfCardClaimModal .r38x-self-card-deadline { padding:10px 12px; border:1px solid #d18b00; border-radius:12px; background:#fff8e8; font-weight:800; }
      #firstLoginSelfCardClaimModal .r38x-self-card-privacy { font-weight:700; color:#5b3a8b; }
      #firstLoginSelfCardClaimModal .r38x-self-card-list { display:grid; gap:10px; margin:14px 0; }
      #firstLoginSelfCardClaimModal .r38x-self-card-row { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:start; padding:13px; border:1px solid #ddd3f5; border-radius:14px; background:#fff; }
      #firstLoginSelfCardClaimModal .r38x-self-card-row[data-state="manual_review"] { background:#f7f7f7; }
      #firstLoginSelfCardClaimModal .r38x-self-card-row input { width:22px; height:22px; margin-top:4px; }
      #firstLoginSelfCardClaimModal .r38x-self-card-number { font-size:1.1rem; font-weight:900; letter-spacing:.04em; }
      #firstLoginSelfCardClaimModal .r38x-self-card-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px 14px; margin-top:7px; }
      #firstLoginSelfCardClaimModal .r38x-self-card-status { margin-top:6px; font-weight:800; color:#5b3a8b; }
      #firstLoginSelfCardClaimModal .r38x-self-card-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; position:sticky; bottom:-1px; padding:12px 0 2px; background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%); }
      @media (max-width:560px) { #firstLoginSelfCardClaimModal .r38x-self-card-meta { grid-template-columns:1fr; } }

/* ── 來源 id nfcCardStyle（passenger.js NFC_CARD_CSS）── */
#nfcResultModal.nfc-result-backdrop{z-index:100000!important;background:rgba(15,23,42,.62)!important;padding:20px!important;}#nfcResultModal .nfc-result-card{box-sizing:border-box!important;background:#fff!important;border-radius:24px!important;border-top:14px solid #0f766e!important;padding:26px 20px!important;width:min(460px,92vw)!important;max-height:88vh!important;overflow:auto!important;text-align:center!important;box-shadow:0 24px 70px rgba(15,23,42,.35)!important;}#nfcResultModal .nfc-result-card.tone-g{border-top-color:#15803d!important;background:#f0fdf4!important;}#nfcResultModal .nfc-result-card.tone-y{border-top-color:#ca8a04!important;background:#fefce8!important;}#nfcResultModal .nfc-result-card.tone-dy{border-top-color:#dc2626!important;background:#fef2f2!important;}#nfcResultModal .nfc-result-big{margin:0 0 10px!important;font-size:34px!important;font-weight:1000!important;line-height:1.3!important;color:#0f172a!important;}#nfcResultModal .nfc-result-sub{margin:0 0 20px!important;font-size:20px!important;font-weight:700!important;line-height:1.45!important;color:#334155!important;}#nfcResultModal .nfc-result-ok{display:block!important;box-sizing:border-box!important;width:100%!important;min-height:62px!important;margin:0!important;padding:14px 16px!important;border:0!important;border-radius:16px!important;background:#0f766e!important;color:#fff!important;font-size:24px!important;font-weight:900!important;line-height:1.2!important;cursor:pointer!important;}#nfcResultModal .nfc-result-card.tone-g .nfc-result-ok{background:#15803d!important;}#nfcResultModal .nfc-result-card.tone-y .nfc-result-ok{background:#ca8a04!important;}#nfcResultModal .nfc-result-card.tone-dy .nfc-result-ok{background:#dc2626!important;}#nfcResultModal .nfc-result-foot{margin:14px 0 0!important;font-size:15px!important;font-weight:700!important;line-height:1.4!important;color:#64748b!important;}

/* P9（§九十九補充一 5）：掃碼結果視窗固定寬版，成功／失敗同寬。
 * 原因：override-batch3c.css 把 .modal-card 設成 width:auto，在置中的彈性容器裡依內容縮窄；ID 選擇器壓過 class。 */
#scanResultModal .modal-card { width: min(520px, 94vw); }
/* 窄螢幕每列維持左右排（標籤｜數值）。 */
@media (max-width: 760px) { #scanResultModal .scan-result-row { flex-direction: row; align-items: center; } }

/* ── ETA（§一百〇四續二～續五）：「車在哪」基本樣式（F2）＋「距我的站」一行、改站、選站清單 ──
 * 全部以 #vehicleLiveBox 起頭（特異性 1,1,0）壓過全域按鈕樣式；字級一律用 em，沿用頁面既有兩檔字級。
 * 路線鈕＝一列可換行的膠囊；每台車一張卡；新的一行＝卡片標題列；站列垂直（已過淡化、目前段高亮，與後台同型）。 */
#vehicleLiveBox .cyc-live-dirs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}
#vehicleLiveBox .cyc-live-dir{min-height:40px;padding:6px 14px;border:1px solid #b0bec5;border-radius:999px;background:#fff;color:#263238;font-size:1em;font-weight:700;line-height:1.3}
#vehicleLiveBox .cyc-live-dir.on{border-color:#1565c0;background:#1565c0;color:#fff}
/* 既有 app.css「body.passenger-v284-legacy-spec button:where(:not(#startCamera))」以 !important 把全頁按鈕圓角鎖在 16px；
 * 路線鈕要成膠囊只能同樣用 !important（本規則特異性 1,1,0 較高），只限路線鈕這一條。 */
#vehicleLiveBox .cyc-live-dir{border-radius:999px!important}
#vehicleLiveBox .cyc-live-card{margin:10px 0 14px;border:1px solid #cfd8dc;border-radius:14px;background:#fff;overflow:hidden}
#vehicleLiveBox .cyc-live-card.off{border-color:#e0e0e0}
#vehicleLiveBox .cyc-eta-line{margin:0;padding:10px 12px;border-bottom:1px solid #c8e6c9;background:#e8f5e9;color:#1b5e20;font-weight:800;font-size:1.05em;line-height:1.45;overflow-wrap:anywhere}
#vehicleLiveBox .cyc-live-card.off .cyc-eta-line{border-bottom-color:#e0e0e0;background:#f5f5f5;color:#546e7a}
/* §一百〇四續八 P10：標題列右側「開地圖」純連結；文字可換行、連結不縮、不擠出卡片。 */
#vehicleLiveBox .cyc-eta-line{display:flex;align-items:flex-start;gap:8px}
#vehicleLiveBox .cyc-eta-text{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
#vehicleLiveBox .cyc-eta-map{flex:0 0 auto;display:inline-flex;align-items:center;min-height:36px;padding:4px 12px;border:1px solid #1565c0;border-radius:999px;background:#fff;color:#1565c0;font-size:.9em;font-weight:800;text-decoration:none;white-space:nowrap}
#vehicleLiveBox .cyc-eta-map:hover{background:#e3f2fd}
#vehicleLiveBox .cyc-live-car{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:8px 12px 4px;color:#37474f;font-size:.95em;line-height:1.5}
#vehicleLiveBox .cyc-live-dot{display:inline-block;flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:#43a047}
#vehicleLiveBox .cyc-live-car.off .cyc-live-dot{background:#9e9e9e}
#vehicleLiveBox .cyc-live-no{font-weight:800;color:#263238}
#vehicleLiveBox .cyc-live-st{min-width:0;overflow-wrap:anywhere}
#vehicleLiveBox .cyc-live-st b{margin-right:6px}
#vehicleLiveBox .cyc-live-stops{list-style:none;margin:6px 12px 12px;padding:0;border-left:3px solid #cfd8dc}
#vehicleLiveBox .cyc-live-stops li{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;line-height:1.4}
#vehicleLiveBox .cyc-live-sn{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;color:#263238}
#vehicleLiveBox .cyc-live-tag{flex:0 0 auto;padding:1px 6px;border-radius:6px;background:#efebe9;color:#6d4c41;font-size:.8em;white-space:nowrap}
#vehicleLiveBox .cyc-live-eta{flex:0 0 auto;color:#37474f;font-size:.9em;white-space:nowrap}
#vehicleLiveBox .cyc-live-stops li.done{opacity:.45}
#vehicleLiveBox .cyc-live-stops li.is-prev,#vehicleLiveBox .cyc-live-stops li.next{background:#e3f2fd;font-weight:800}
#vehicleLiveBox .cyc-live-note{margin:8px 0;color:#607d8b;font-size:.9em}
#vehicleLiveBox .cyc-live-empty{padding:12px;color:#607d8b}
#vehicleLiveBox .cyc-eta-tools{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
#vehicleLiveBox .cyc-eta-change,#vehicleLiveBox .cyc-eta-open{min-height:40px;padding:6px 14px;border:1px solid #1565c0;border-radius:10px;background:#fff;color:#1565c0;font-size:1em;font-weight:800}
#vehicleLiveBox .cyc-eta-picker{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px;padding:10px;border:1px solid #cfd8dc;border-radius:12px;background:#fafbfc}
#vehicleLiveBox .cyc-eta-picker-title{flex-basis:100%;margin:0 0 4px;color:#263238;font-size:1em;font-weight:800}
#vehicleLiveBox .cyc-eta-pick{min-height:40px;max-width:100%;padding:6px 12px;border:1px solid #b0bec5;border-radius:10px;background:#fff;color:#263238;font-size:1em;text-align:left;overflow-wrap:anywhere}
#vehicleLiveBox .cyc-eta-pick.on{border-color:#1565c0;background:#e3f2fd;font-weight:800}

/* §一百〇七續 5b：相機視窗「重試」鈕（8 秒沒畫面或相機被占用時才出現；平時帶 .hidden 由全域規則隱藏）。
 * 放在提示字與影像框之間，窄螢幕也不必捲動就看得到；字級與高度沿用全頁按鈕規則。 */
#qrCameraModal .qr-camera-retry{display:block;box-sizing:border-box;width:100%;margin:0 0 12px}
/* ── 同行者座位（§一百一十五續）：「本次搭乘人數」與「請點選同行者的座位」兩個小視窗 ──
 * 全部以 #cycPeopleModal／#cycCompanionModal 起頭（特異性 1,1,0 以上）；字級用 em，沿用頁面兩檔字級。
 * 既有 app.css「body.passenger-v284-legacy-spec button:where(:not(#startCamera))」以 !important 鎖住全頁按鈕
 * 的 padding 與圓角；座位格要排得下 3 欄＋走道，只有座位格這一條同樣用 !important 縮 padding、圓角。 */
#cycPeopleModal .cyc-people-card h2,#cycCompanionModal .cyc-comp-card h2{margin:0 0 12px;text-align:center;font-size:1.25em;line-height:1.35}
#cycPeopleModal .cyc-people-main{display:flex;flex-direction:column;gap:12px}
#cycPeopleModal .cyc-people-main button{width:100%;min-height:56px;font-size:1.15em}
#cycPeopleModal .cyc-people-multi{border:2px solid #1565c0;background:#fff;color:#1565c0}
#cycPeopleModal .cyc-people-more{margin-top:14px}
#cycPeopleModal .cyc-people-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
#cycPeopleModal .cyc-people-opt{width:100%;border:2px solid #b0bec5;background:#fff;color:#263238}
#cycPeopleModal .cyc-people-opt.is-picked{border-color:#1565c0;background:#e3f2fd;color:#0d47a1}
#cycPeopleModal .cyc-people-go{width:100%;min-height:56px}
#cycPeopleModal .cyc-people-go:disabled{opacity:.45}
#cycCompanionModal .cyc-comp-card{max-height:94vh;overflow-y:auto}
#cycCompanionModal .cyc-comp-progress{margin:0 0 8px;text-align:center;color:#263238;font-size:1.05em;font-weight:800}
#cycCompanionModal .cyc-comp-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin:0 0 8px;color:#37474f;font-size:.9em}
#cycCompanionModal .cyc-comp-legend i{display:inline-block;width:14px;height:14px;margin-right:4px;border:1px solid #90a4ae;border-radius:3px;vertical-align:-2px}
#cycCompanionModal .lg-free{background:#fff}
#cycCompanionModal .lg-taken{background:#cfd8dc}
#cycCompanionModal .lg-mine{background:#bbdefb}
#cycCompanionModal .lg-picked{background:#2e7d32}
#cycCompanionModal .cyc-comp-map .front{display:grid;grid-template-columns:1fr 1fr .55fr 1fr;align-items:center;gap:6px;margin:0 0 6px;color:#546e7a;font-size:.85em}
#cycCompanionModal .cyc-comp-map .front .drv{grid-column:1;font-weight:800}
#cycCompanionModal .cyc-comp-map .front span{grid-column:2 / span 2;text-align:center}
#cycCompanionModal .cyc-comp-map .row{display:grid;grid-template-columns:1fr 1fr .55fr 1fr;gap:6px;margin:0 0 6px}
#cycCompanionModal .cyc-comp-map .aisle{align-self:center;text-align:center;color:#90a4ae;font-size:.75em}
#cycCompanionModal .cyc-comp-map .door{align-self:center;text-align:center;color:#546e7a;font-size:.85em}
#cycCompanionModal .cyc-comp-map .seat{min-width:0;width:100%;padding:4px 2px!important;border:2px solid #90a4ae;border-radius:10px!important;background:#fff;color:#263238;line-height:1.2;white-space:nowrap}
#cycCompanionModal .cyc-comp-map .seat.none{visibility:hidden}
#cycCompanionModal .cyc-comp-map .seat.taken{border-color:#cfd8dc;background:#cfd8dc;color:#78909c}
#cycCompanionModal .cyc-comp-map .seat.mine{border-color:#1565c0;background:#bbdefb;color:#0d47a1}
#cycCompanionModal .cyc-comp-map .seat.picked{border-color:#1b5e20;background:#2e7d32;color:#fff}
#cycCompanionModal .cyc-comp-map .seat.conflict{outline:3px solid #c62828;outline-offset:1px}
#cycCompanionModal .cyc-comp-msg{min-height:1.4em;margin:8px 0;text-align:center;font-weight:800}
#cycCompanionModal .cyc-comp-msg.is-err{color:#c62828}
#cycCompanionModal .cyc-comp-msg.is-ok{color:#2e7d32}
#cycCompanionModal .cyc-comp-actions{display:flex;gap:10px}
#cycCompanionModal .cyc-comp-actions button{flex:1 1 0;min-width:0}
#cycCompanionModal .cyc-comp-actions button:disabled{opacity:.45}
#cycCompanionModal .cyc-comp-skip{border:2px solid #90a4ae;background:#fff;color:#37474f}
