/*
 * 收尾的覆蓋層：手機版面、2026-09-27 的三輪修正、「推 N ▾」、各媒體熱門榜。
 * 從 site.css 原樣搬出來（2026-10-03，順序沒動）。這一份**一定要掛在 site-blocks.css 後面**
 * ——它裡面有很多是蓋掉前面 .rxm／.rc- 規則的手機修正，順序反了就失效。
 */
  /* ===== 手機版面（2026-09-27 使用者：手機全破，全部檢查）===== */
  /* 推文排行：手機上「想」＋「推 N ▾」不跟標題擠同一列，改放到推噓數字下面靠右；展開箭頭留在右上 */
  @media (max-width: 767px) {
    #push-ranking li > .grid > .col-start-3.row-start-1 { display: contents; }
    #push-ranking li > .grid > .col-start-3.row-start-1 > .mb-gbtn { grid-column: 2 / -1; grid-row: 3; justify-self: end; margin-top: 8px; }
    #push-ranking li > .grid > .col-start-3.row-start-1 > [data-toggle] { grid-column: 3; grid-row: 1; align-self: start; }
    #push-ranking li > .grid > .col-start-2.mt-2 { grid-column: 2 / -1; }
  }
  /* 頁首：窄螢幕縮小間距，會員鈕只留頭像 */
  @media (max-width: 639px) {
    header .h-14 { gap: 10px; }
    #mb-user .stk { display: none; }
  }
  @media (max-width: 479px) { #mb-user .ubtn .utop, #mb-user .ubtn .lvb { display: none; } }
  /* 讀者推薦榜：手機上分數留在右上，「想」＋「推 N ▾」下移一列靠右，標題才有足夠寬度 */
  @media (max-width: 639px) {
    #rc-board .rc-row, .rc-col .rc-row, .rc-col.ev .rc-row { grid-template-columns: 2rem minmax(0, 1fr) auto; gap: 4px 8px; }
    #rc-board .rc-row .sc { grid-column: 3; grid-row: 1; align-self: start; }
    #rc-board .rc-row .rxn-acts, #rc-board .rc-row > .rc-sp { grid-column: 2 / -1; grid-row: 2; justify-self: end; margin-top: 2px; }
    #rc-board .rc-row .rc-ptag { white-space: nowrap; max-width: 100%; overflow: hidden; }
    #rc-board .rc-row .rc-who, #rc-board .rc-whomore, #rc-board .rc-row .nick { white-space: nowrap; }
  }
  @media (max-width: 639px) {
    .rc-col h3 { flex-wrap: wrap; row-gap: 2px; } .rc-col h3 > small { flex-basis: 100%; }
    /* 置頂標籤：手機上自己一行、不換行、太長用 … 收尾（原本整團橘色換行很難讀） */
    #rc-board .rc-row .rc-ptag { display: flex; align-items: center; width: fit-content; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 4px 0 0; font-size: 10.5px; line-height: 1.6; padding: 0 8px 0 5px; border-radius: 999px; }
    #rc-board .rc-row .rc-ptag > span, #rc-board .rc-row .rc-ptag .rc-pinby { white-space: nowrap; }
  }
  /* iPad 橫向（1024–1279）：推文排行跟飆升並排，標題欄只剩 170px → 「想」＋「推 N ▾」移到標題下一列，推噓欄縮到 12rem */
  @media (min-width: 1024px) and (max-width: 1279px) {
    #push-ranking li > .grid { grid-template-columns: 2.5rem minmax(0, 1fr) 12rem auto; }
    #push-ranking li > .grid > .col-start-3.row-start-1 { display: contents; }
    #push-ranking li > .grid > .col-start-3.row-start-1 > .mb-gbtn { grid-column: 2; grid-row: 2; justify-self: start; margin-top: 6px; }
    #push-ranking li > .grid > .col-start-3.row-start-1 > [data-toggle] { grid-column: 4; grid-row: 1; }
  }
  .rc-toast { pointer-events: none; }
  /* 很窄的手機（<360，例如 300px 的視窗）：頁首縮小、推文排行列再收 */
  @media (max-width: 359px) {
    header .h-14 { gap: 6px; padding-left: 10px; padding-right: 10px; }
    header .logo-wm { font-size: 22px; } header .logo-wm + * { display: none; }
    #search-open-m, #theme-toggle { width: 32px; height: 32px; }
    #mb-user .ubtn .av { width: 30px; height: 30px; }
    #push-ranking li, #push-ranking > div { padding-left: 10px; padding-right: 10px; }
    #push-ranking li > .grid { grid-template-columns: 2rem minmax(0, 1fr) auto; column-gap: 4px; }
    #push-ranking li .pl-12 { padding-left: 2.25rem; }
    #push-ranking li .col-start-2.mt-2 > .flex { flex-wrap: wrap; row-gap: 2px; }
    #push-ranking li .col-start-2.mt-2 .num.text-\[11px\] { white-space: nowrap; }
    #push-ranking li .col-start-2.mt-2 .num.text-sm { margin-left: auto; }
    .min-w-\[14rem\] { min-width: 0 !important; flex-basis: 100%; } /* 標題整列、按鈕換到下一列；只拿掉 min-width 會讓標題被擠成一字一行 */
    .rc-toast, .rxm .toast, .mb-toast, .bdc-note { left: 8px; right: 8px; max-width: calc(100vw - 16px); font-size: 12.5px; padding: 8px 12px; }
  }
  /* 更多討論中的新聞：手機上迷你曲線＋長條＋數字那列可以換行，不要把整列撐出畫面 */
  @media (max-width: 639px) {
    #feed li > .grid > .col-start-2.mt-2 { min-width: 0; flex-wrap: wrap; row-gap: 4px; }
    #feed li > .grid > .col-start-2.mt-2 > .w-\[70px\] { width: auto; flex: 1 1 40px; min-width: 40px; }
  }
  @media (max-width: 359px) { #feed li { padding-left: 10px; padding-right: 10px; } }
  /* 底部浮動提示：left:50% 會讓自動寬度只剩半個畫面（手機上文字擠成五行）→ 改成左右各留 16px、內容多寬就多寬、置中 */
  .rc-toast, .rxm .toast, .mb-toast, .bdc-note { left: 16px; right: 16px; width: fit-content; max-width: calc(100vw - 32px); margin: 0 auto; transform: none; box-sizing: border-box; }
  @keyframes otnToastIn { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
  .rxm .toast { animation-name: otnToastIn; }
  /* 頭像選單：窄螢幕改成貼齊視窗左右各 8px，不再從頭像往左長、被切掉 */
  @media (max-width: 479px) { #mb-user .menu, #mb-user .dd { position: fixed; left: 8px; right: 8px; top: calc(56px + env(safe-area-inset-top, 0px)); width: auto; max-height: calc(100vh - 72px); overflow-y: auto; } }
  /* 搜尋結果：手機上標題整列，分類／日期／媒體那行跟推文數同一行 */
  @media (max-width: 639px) {
    #search-body ol > li { flex-wrap: wrap; gap: 2px 12px; padding-top: 8px; padding-bottom: 8px; }
    #search-body ol > li > .min-w-0 { flex-basis: 100%; }
    #search-body ol > li > .num { margin-left: auto; font-size: 13px; line-height: 1.2; }
  }
  /* 手機不留左右邊距（2026-09-27 使用者：太浪費空間）：卡片貼齊螢幕、左右邊框與圓角拿掉 */
  @media (max-width: 639px) {
    #home-view > main, #event-view, body > main, .home-duo, .home-pair { padding-left: 0 !important; padding-right: 0 !important; }
    #home-view > main, #event-view { gap: 10px; }
    main > .rounded-lg, main > section, main > div > .rounded-lg, main > div > section, main > div > div > section, #event-view > section, #event-view > .rounded-lg, #event-view > div > section, #event-view > div > .rounded-lg, .home-duo > section, .home-pair > section, #rc-board > .rounded-lg, #rc-board { border-radius: 0 !important; border-left: 0 !important; border-right: 0 !important; }
    main > .grid, #event-view > .grid, .home-duo, .home-pair { gap: 10px; }
    #event-view > p:first-child, #event-view > h1, main > h1, main > p { padding-left: 12px; padding-right: 12px; }
    .media-band, #media-band { padding-left: 0; padding-right: 0; }
  }
  @media (max-width: 639px) { #page-title { padding-left: 12px; padding-right: 12px; } #page-title ~ p, #page-title + p { padding-left: 12px; padding-right: 12px; } #home-view main > div:has(> #page-title), #home-view main > div:has(#page-title) { padding-left: 12px; padding-right: 12px; } #home-view main > div:has(#page-title) #page-title, #home-view main > div:has(#page-title) p { padding-left: 0; padding-right: 0; } }
  @media (max-width: 359px) { #rc-board .rc-row .rc-ptag { font-size: 10px; } #rc-board .rc-row .rc-ptag .rc-pinby { max-width: 5em; overflow: hidden; text-overflow: ellipsis; } }
  /* 手機：飆升排行的數字不換行、讀者廣告圖在上文字在下、祈福牆數字四格一排 */
  @media (max-width: 639px) {
    #rising-ranking li .mt-2.flex.items-end { gap: 8px; } #rising-ranking li .mt-2.flex.items-end > p { white-space: nowrap; flex-shrink: 0; } #rising-ranking li .mt-2.flex.items-end > :first-child { min-width: 0; overflow: hidden; }
    .ra-eq { grid-template-columns: minmax(0, 1fr) !important; gap: 8px; } .ra-eq .ra-img { width: 100%; aspect-ratio: 1200 / 630; max-height: 150px; }
    .wh-bar { gap: 10px 12px; } .wh-bar .wh-st { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; width: 100%; } .wh-bar .wh-st dd { font-size: 17px; } .wh-bar .wh-st dt { font-size: 11px; white-space: nowrap; }
    .wh-bar .wh-open { flex: 1 1 auto; height: 38px; }
  }
  /* 記號接在標題文字後面 */
  a.news-link .rc-lm, .rxm .ttl .rc-lm { display: inline-flex; vertical-align: -4px; margin-left: 4px; text-decoration: none; white-space: nowrap; } a.news-link .rc-lm i b { top: -5px; right: -4px; }
  /* 手機：「想」＋「推 N ▾」跟長條同一列（controversy／更多新聞是 flex，讀者在看什麼是 grid） */
  @media (max-width: 639px) {
    .rc-figrow { display: flex; align-items: center; gap: 8px; }
    .rc-figrow > :not(.mb-gbtn) { flex: 1 1 auto; min-width: 0; }
    .rc-figrow > .mb-gbtn { flex: 0 0 auto; margin-left: auto; }
    .rc-figrow.grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; }
    .rc-figrow.grid > :not(.mb-gbtn) { grid-column: 1; }
    .rc-figrow.grid > .mb-gbtn { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin-left: 0; }
    #feed .rc-figrow { flex-wrap: nowrap; justify-content: flex-start; } #feed .rc-figrow > svg:first-child { display: none; } #feed .rc-figrow > .w-\[70px\] { flex: 1 1 30px; min-width: 24px; } #feed .rc-figrow > .num { flex: 0 0 auto; width: auto; }
    /* YouTube 今日重點卡：縮圖小一點、數字與說明分兩行 */
    #youtube-ranking .hl-card > a > div:first-child { width: 88px; }
    #youtube-ranking .hl-card > a p:last-child { flex-wrap: wrap; row-gap: 0; } #youtube-ranking .hl-card > a p:last-child .fig { font-size: 20px; }
  }
  /* ===== 2026-09-27 手機第三輪 ===== */
  @media (max-width: 639px) {
    /* 讀者推薦榜：反應小字＋按鈕同一列；名次欄窄一點；數字列緊一點 */
    #rc-board .rc-row .rxn-acts { justify-self: stretch; display: flex; align-items: center; gap: 6px; width: 100%; }
    #rc-board .rc-row .rxn-acts .rxn-sum { margin-right: auto; }
    #rc-board .rc-row, .rc-col .rc-row, .rc-col.ev .rc-row { grid-template-columns: 1.7rem minmax(0, 1fr) auto; column-gap: 6px; }
    #rc-board .rc-row .cnt { gap: 2px 8px; margin-top: 2px; }
    #rc-board .rc-row .rc-ptag { margin-top: 3px; }
    /* 廣告版位要留邊距（卡片貼齊，但廣告不能貼齊） */
    .ad-slot { margin-left: 12px; margin-right: 12px; border-radius: 8px !important; border-left: 1px dashed var(--border) !important; border-right: 1px dashed var(--border) !important; }
    /* 內頁的標題、說明、篩選列（不是卡片的直屬區塊）留 12px */
    #event-view > div:not(.grid):not(.home-duo):not(.home-pair):not(.overflow-hidden):not(.rounded-lg):not(.border), #event-view > h1, #event-view > p, #event-view > nav { padding-left: 12px; padding-right: 12px; }
    #event-view > div:not(.grid):not(.home-duo):not(.home-pair):not(.overflow-hidden):not(.rounded-lg):not(.border) > section, #event-view > div:not(.grid) > .rounded-lg { margin-left: -12px; margin-right: -12px; }
    /* 讀者推薦條：文字直接從螢幕邊緣出來 */
    #rx-strip .rsw { padding: 0 0 0 12px; } #rx-strip .rsv { margin-right: 0; }
    /* 區塊捲到位時要避開黏在上面的三列頁首 */
    #home-view section[id], #home-view .home-duo, #home-view .home-pair { scroll-margin-top: 140px; }
  }
  /* 「讀者反應」小標籤不換行、不被壓扁 */
  .rxm .own { white-space: nowrap; flex-shrink: 0; } .rxm .hd h2 { flex-wrap: wrap; }
  /* 手機第三列：快速跳到首頁各區塊 */
  #jump-bar { border-top: 1px solid var(--border); background: var(--background); }
  #jump-bar ul { display: flex; gap: 4px; margin: 0; padding: 6px 12px; overflow-x: auto; list-style: none; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  #jump-bar ul::-webkit-scrollbar { display: none; }
  #jump-bar a { display: block; white-space: nowrap; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--card); font-size: 12px; color: var(--muted-foreground); }
  #jump-bar a.on { border-color: var(--foreground); background: var(--foreground); color: var(--card); font-weight: 700; }
  @media (min-width: 768px) { #jump-bar { display: none; } }
  @media (max-width: 639px) {
    /* 按鈕列從最左邊開始（連名次欄下面都用），反應小字圖示小一點，才塞得下同一列 */
    #rc-board .rc-row .rxn-acts { grid-column: 1 / -1; flex-wrap: nowrap; }
    #rc-board .rc-row .rxn-acts .rxn-sum { min-width: 0; overflow: hidden; }
    #rc-board .rc-row .rxn-acts .rxn-sum .em .fl { width: 15px; height: 15px; }
    #rc-board .rc-row .rxn-acts .rxn-sum .vnum { font-size: 12px; }
  }
  /* ===== 2026-09-27 自己挑出的 14 項 ===== */
  .scroll-hint { display: none; } @media (max-width: 639px) { .scroll-hint { display: block; } }
  @media (max-width: 639px) {
    /* 1 關於、隱私：文章頁留邊距 */
    #event-view > .doc, #event-view > article { padding-left: 12px !important; padding-right: 12px !important; }
    /* 5 媒體頁 KPI 五格：最後一格橫跨 */
    #event-view dl.grid-cols-2 > div:nth-child(5):last-child { grid-column: span 2; }
    /* 8 首頁三格統計：字小一點、不要把「文章」拆行 */
    #index-panel dl.grid-cols-3 > div { padding-left: 8px; padding-right: 8px; } #index-panel dl.grid-cols-3 dt { font-size: 10.5px; word-break: keep-all; }
    /* 9 我的頁面：點數紀錄、預言紀錄改成列表式 */
    .mbm table.ptlog thead, .mbm table.pred thead { display: none; }
    .mbm table.ptlog, .mbm table.pred, .mbm table.ptlog tbody, .mbm table.pred tbody { display: block; }
    .mbm table.ptlog tr, .mbm table.pred tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--border); }
    .mbm table.ptlog td, .mbm table.pred td { display: block; padding: 0; border: 0; }
    .mbm table.ptlog td:first-child, .mbm table.pred td:first-child { grid-column: 1 / -1; font-size: 11.5px; color: var(--muted-foreground); }
    .mbm table.ptlog td.pt { grid-column: 2; grid-row: 2; align-self: center; }
    .mbm table.pred td:nth-child(2)::before { content: "你猜 "; color: var(--muted-foreground); font-size: 12px; }
    .mbm table.pred td:nth-child(3)::before { content: "答案 "; color: var(--muted-foreground); font-size: 12px; }
    .mbm table.pred td:nth-child(2), .mbm table.pred td:nth-child(3) { grid-column: 1; }
    .mbm table.pred td:nth-child(4) { grid-column: 2; grid-row: 2 / span 2; align-self: center; text-align: right; font-size: 12.5px; }
    /* 12 頁尾家族格：名稱可以換行 */
    .ft-fam ul { grid-template-columns: 1fr !important; } .ft-fam .fn { font-size: 13px; }
    /* 14 觸控目標：時間切換鈕高一點 */
    [role=group][aria-label="時間範圍"] button, [role=group][aria-label="排序"] button { padding-top: 6px; padding-bottom: 6px; }
  }
  /* ===== 2026-09-27 使用者同意的 A～E ===== */
  /* A 頁首：手機往下捲收起主選單列 */
  #nav-m { max-height: 48px; overflow: hidden; transition: max-height .22s ease, opacity .18s ease, border-color .18s; }
  #site-header.nav-hid #nav-m { max-height: 0; opacity: 0; border-color: transparent; }
  /* B 今日各媒體發稿：手機先 8 家 */
  @media (max-width: 639px) { .ot-list:not(.open) > li:nth-child(n+9) { display: none; } .ot-more { display: block; width: 100%; padding: 11px; border: 0; border-top: 1px solid var(--border); background: var(--card); font: 600 13px "Noto Sans TC", sans-serif; color: var(--muted-foreground); } }
  /* C 媒體列表：手機只留媒體＋排序欄 */
  .ml-pick { display: none; }
  @media (max-width: 639px) {
    .ml-pick { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--border); font-size: 12px; color: var(--muted-foreground); }
    .ml-pick label { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--foreground); } .ml-pick select { padding: 5px 8px; border: 1px solid var(--border); border-radius: 7px; background: var(--card); font: 600 13px "Noto Sans TC", sans-serif; color: var(--foreground); }
    .ml-table .ml-col { display: none; } .ml-table .ml-cur > div { min-width: 0 !important; } .ml-table th.ml-cur { text-align: right; } .ml-table td.ml-cur { width: 45%; }
  }
  /* D 推薦選單：手機底部面板 */
  .rc-sheetbg { position: fixed; inset: 0; z-index: 99; background: rgb(15 17 21 / .45); animation: rcFade .18s ease-out; }
  @keyframes rcFade { from { opacity: 0; } }
  .rc-dd.sheet { left: 0 !important; right: 0 !important; top: auto !important; bottom: 0 !important; width: auto; max-width: none; max-height: min(88vh, calc(100vh - 40px)); border-radius: 16px 16px 0 0; border-bottom: 0; padding-bottom: max(8px, env(safe-area-inset-bottom)); animation: rcUp .22s cubic-bezier(.2, .8, .2, 1); }
  @keyframes rcUp { from { transform: translateY(100%); } }
  .rc-dd.sheet .grab { width: 40px; height: 4px; margin: 6px auto 2px; border-radius: 2px; background: var(--border); }
  .rc-dd.sheet .pt { position: sticky; top: 0; z-index: 1; background: var(--card); padding: 8px 16px 10px; align-items: flex-start; } .rc-dd.sheet .pt > span:first-child { display: flex; flex-direction: column; } .rc-dd.sheet .pt small { display: block; margin-top: 2px; font-size: 11.5px; font-weight: 400; color: var(--muted-foreground); }
  .rc-dd.sheet .g { padding: 10px 16px; } .rc-dd.sheet .g i { width: 32px; height: 32px; } .rc-dd.sheet .nm b { font-size: 15px; } .rc-dd.sheet .nm small { font-size: 12px; } .rc-dd.sheet .pr { font-size: 15px; }
  .rc-dd.sheet .tn { padding: 10px 16px 2px; } .rc-dd.sheet .ft { padding: 10px 16px 6px; font-size: 12px; }
  /* E 首頁三格統計：手機第三格整列 */
  @media (max-width: 639px) { .stat3 > div:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--border); } .stat3 > div:nth-child(2) { border-left: 1px solid var(--border); } .stat3 dd.truncate { white-space: normal; } }
  /* 「你怎麼想？」擴大到新聞標題：「想」小方塊＋標題下小字（2026-09-27） */
  .rxn { display: inline-flex; align-items: center; vertical-align: middle; }
  .rxn-think { display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--border); border-radius: 7px; background: var(--card); cursor: pointer; flex-shrink: 0; }
  .rxn-think:hover { background: #f1ebfe; border-color: #c4b5fd; }
  .rxn-think .fl, .rxn-think .ic, .rxn-think svg { width: 20px; height: 20px; font-size: 20px; }
  .rxn-think.on { border-color: currentColor; }
  .rxn-sum { gap: 4px; cursor: pointer; border-radius: 999px; padding: 1px 6px 1px 2px; }
  .rxn-sum:hover, .rxn-sum:focus-visible { background: #eef0f3; outline: none; } /* 不能用 var(--muted)：在 .rxm 裡它是灰色字的顏色 */
  .rxn-sum .em { display: inline-flex; } .rxn-sum .em > span { width: 17px; height: 17px; font-size: 17px; margin-left: -4px; border-radius: 5px; box-shadow: 0 0 0 1.5px var(--card); display: inline-flex; } .rxn-sum .em > span:first-child { margin-left: 0; }
  .rxn-sum .em .fl, .rxn-sum .em svg { width: 17px; height: 17px; }
  .rxn-sum .vnum { font: 600 11.5px "IBM Plex Mono", monospace; color: var(--foreground); }
  [data-like].rxn-after { margin-left: 6px !important; }
  .rxn .rxn-think + * { margin-left: 0; }
  li .rxn:has(.rxn-think) { margin-left: auto; }
  .rc-sp { margin-left: 6px; } #push-ranking .mb-gbtn { display: inline-flex; align-items: center; gap: 6px; }
  .rxn-t { display: inline; } .rxn-t .ttl { white-space: normal; display: inline-block; max-width: 100%; vertical-align: top; }
  #rx-layer > .picker, #rx-layer > .detail { z-index: 115; }
  #rx-layer > .detail h4 { display: block; line-height: 1.45; } #rx-layer > .detail h4 small { display: block; margin-top: 2px; }
  .rxn-acts { display: inline-flex; align-items: center; gap: 6px; } .rxn-acts .rc-sp { margin-left: 0; }

/* 會員頭像圖（2026-10-01）：蓋在暱稱首字上面，抓不到圖時 img 自己移除、露出字 */
.mbm .av { position: relative; overflow: hidden; }
.mbm .av img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

  /* ===== 「推 N ▾」（site-recommend.js、site-live.js；這一段是 2026-10-01 推薦那一輪加的，原型沒有獨立 class 的小東西） ===== */
  .rcm .nick.lv3, .rxm .nick.lv3 { background: linear-gradient(90deg, #d99a0b, #f5c542); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 700; } /* Lv3 暱稱金色（原型 rxNick） */
  .rc-toast .rc-undo { pointer-events: auto; margin-left: 8px; padding: 2px 10px; border: 1px solid rgb(255 255 255 / .4); border-radius: 999px; background: none; color: #fff; font: 700 12px "Noto Sans TC", sans-serif; cursor: pointer; } /* 推薦後幾分鐘內可以反悔 */
  .rc-toast .rc-undo:disabled { opacity: .5; cursor: default; }
  .rc-wholist ol { list-style: none; margin: 0; padding: 0; } /* 事件頁「推薦這個事件的讀者」：跟 .rc-whobox 的名單同一個樣子 */
  .rc-wholist li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--border); font-size: 13px; }
  .rc-wholist .wk { display: inline-flex; gap: 4px; } .rc-wholist .wk span { display: inline-flex; align-items: center; font: 600 11.5px "Barlow Condensed", sans-serif; color: var(--muted-foreground); } .rc-wholist .wk i { display: inline-flex; width: 20px; height: 18px; } .rc-wholist .wk i svg, .rc-wholist .wk i img { width: 100%; height: 100%; object-fit: contain; }
  .rc-wholist .wp { font: 700 13px "Barlow Condensed", sans-serif; color: #7c3aed; }
  .rc-wholist .you { margin-left: 4px; padding: 0 5px; border-radius: 4px; background: #f97316; color: #fff; font-size: 10.5px; font-weight: 800; }
  .rc-wholist .wf { margin: 0; padding: 6px 0 0; font-size: 12px; color: var(--muted-foreground); }
  .rc-lm i > b { font: 700 10px "Barlow Condensed", sans-serif; color: #7c3aed; margin-left: 1px; } /* 同一種送了兩次以上的小數字 */
  #rx-strip .rsi .rc-si { display: inline-flex; width: 22px; height: 18px; margin-right: 2px; } #rx-strip .rsi .rc-si svg, #rx-strip .rsi .rc-si img { width: 100%; height: 100%; object-fit: contain; }
  #rx-strip .rsi a { color: inherit; }
  #rx-strip .rs-plane { display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; font-size: 13px; font-weight: 700; color: #1e3a8a; border-right: 1px solid #fed7aa; } #rx-strip .rs-plane .rc-si { width: 26px; } /* 飛機廣播：接在推薦條最前面（簡化版，不做橫越全站的動畫） */
  .rxm .feed li .fi svg, .rxm .feed li .fi img { width: 100%; height: 100%; object-fit: contain; }

/* 我的頁面「本站存了什麼」（v2/10：本站存 Email，要讓會員看得到；原型沒有，我們補的，樣式照 .mbm 其他卡片） */
.mbm dl.stored { margin: 0; padding: 2px 16px 12px; }
.mbm dl.stored > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 13px; line-height: 1.7; }
.mbm dl.stored > div:last-child { border-bottom: 0; }
.mbm dl.stored dt { font-weight: 800; }
.mbm dl.stored dd { margin: 0; color: var(--muted-foreground); overflow-wrap: anywhere; }
.mbm dl.stored dd b { color: var(--foreground); font-weight: 700; }
.mbm a.stored-btn { display: inline-block; margin-top: 8px; padding: 0 14px; line-height: 32px; border: 1px solid var(--border); border-radius: 8px; color: var(--foreground); font-weight: 700; text-decoration: none; }
.mbm a.stored-btn:hover { background: var(--muted); }
@media (max-width: 639px) { .mbm dl.stored > div { grid-template-columns: 1fr; gap: 2px; } }
  /* 新聞列：「N 分｜推 N ▾」——只有分數 ≠ 推的下數時才出現；樣式沿用讀者推薦榜右邊的「N 分」（原型 home-v6 `.rc-score`，2026-10-02 使用者） */
  .mb-gbtn { align-items: center; gap: 6px; }
  .rc-score { display: inline-flex; align-items: center; gap: 2px; height: 28px; flex-shrink: 0; white-space: nowrap; font-size: 11px; font-weight: 500; color: var(--muted-foreground); cursor: default; }
  .rc-score b { font: 700 16px "Barlow Condensed", sans-serif; color: #7c3aed; }
  :root[data-mode="dark"] .rc-score b { color: #c4b5fd; }
  .rc-score + .rc-sp { margin-left: 0; }
  .mb-gbtn > .rc-score { order: 2; } .mb-gbtn > .rc-sp { order: 3; } /* 「想」在最前面、分數貼著「推 N ▾」（想的方塊是後來才插進去的，不管插入順序） */
  .rc-score.ev { height: 34px; margin-left: auto; margin-right: 6px; } .rc-score.ev b { font-size: 18px; } .rc-score.ev + .rc-evbtn { margin-left: 0; }
  @media (max-width: 359px) { .rc-score { font-size: 10px; } .rc-score b { font-size: 14px; } .rc-score.ev b { font-size: 16px; } }
  /* 分數在列的最右邊：提示置中會超出卡片被切掉（使用者 2026-10-02「字被截到了」）→ 靠右對齊、往左長，太長就換行 */
  .rc-score[data-tip]:hover::after, .rc-score[data-tip]:focus-visible::after { left: auto; right: 0; transform: none; white-space: normal; width: max-content; max-width: min(280px, 80vw); text-align: left; }

  /* 事件頁〈這個事件的祈福卡〉（10 §6.9）：卡片用祈福牆同一套木色，但放在白底卡裡所以收斂一點 */
  .ev-wishes { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
  .ev-wish { border: 1px solid #ecd9b8; border-radius: 10px; background: #fdf6ec; padding: 10px 12px; }
  .ev-wish-t { margin: 0; font-family: "Noto Serif TC", "Noto Sans TC", serif; font-weight: 600; font-size: 14px; line-height: 1.6; color: #3b2410; }
  .ev-wish-m { margin: 6px 0 0; display: flex; align-items: baseline; gap: 6px; font-size: 11.5px; color: #8a6f4e; }
  .ev-wish-done { color: #b8860b; font-weight: 700; }
  .ev-wish-same { margin-left: auto; white-space: nowrap; }

  /* YouTube 五塊（原型 yt-v3 第 81～115 行；2026-10-03 定案）：
     大卡沿用上面本來就有的 .yt-grid；這裡是小榜、Shorts 直式卡、名次升降 */
  .ytm { margin: 0; padding: 0; list-style: none; }
  .ytm-row { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 14px; border-top: 1px solid var(--border); }
  .ytm-row:first-child { border-top: 0; }
  .ytm-no { font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 16px; color: var(--muted-foreground); text-align: right; }
  .ytm-t { min-width: 0; }
  .ytm-t > span { display: block; font-size: 13px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ytm-t:hover > span { color: var(--up); }
  .ytm-t small { display: block; margin-top: 1px; font-size: 11px; color: var(--muted-foreground); }
  .ytm-v { text-align: right; white-space: nowrap; }
  .ytm-v b { font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 16px; }
  .ytm-v small { display: block; font-size: 10.5px; color: var(--muted-foreground); }
  /* Shorts：直式卡橫向滑動（同舊區塊的 .yt-shelf，載入更多會往右邊加） */
  .yt-sgrid { display: grid; grid-auto-flow: column; grid-auto-columns: 150px; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .yt-sgrid::-webkit-scrollbar { display: none; }
  .yt-sgrid > a { scroll-snap-align: start; min-width: 0; }
  /* 名次升降（原型 moveTag）：NEW ＝上一個整點的快照裡還沒有這支 */
  .yb-new { background: var(--up); color: #fff; border-radius: 4px; padding: 1px 5px; font-size: 10px; font-weight: 700; }
  .yb-up { color: var(--up); font-weight: 700; }
  .yb-dn { color: var(--down); font-weight: 700; }
  .yb-flat { color: var(--muted-foreground); }
  /* 幾家媒體在報（`#coverage-ranking`；原型 home-v7 第 1427 行、規格 v3/06 §2.18）：
     N 個小方塊＋PTT 推文對照。方塊的顏色跟著事件狀態（爆發紅、延燒橘、其餘灰），
     沒報的那幾格留 --muted */
  .cov-row { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto auto; align-items: center; gap: 10px 14px; padding: 12px 16px; }
  .cov-no { width: 2rem; font-size: 19px; font-weight: 600; color: var(--muted-foreground); text-align: right; }
  .cov-main { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
  .cov-name { font-size: 15px; font-weight: 600; }
  .cov-name:hover { color: var(--up); }
  .cov-sub { flex-basis: 100%; font-size: 12px; color: var(--muted-foreground); }
  .cov-tag { font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
  .cov-tag.media { background: #fff1e6; color: #c2410c; }
  .cov-tag.ptt { background: #eaf2fd; color: #1a6fd1; }
  .cov-viz { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
  .cov-boxes { display: grid; grid-template-columns: repeat(11, 6px); gap: 2px; }
  .cov-boxes i { display: block; width: 6px; height: 10px; border-radius: 1px; background: var(--muted); }
  .cov-viz b { font-size: 19px; font-weight: 600; }
  .cov-of { font-size: 12px; color: var(--muted-foreground); }
  .cov-ptt { min-width: 5.5rem; text-align: right; }
  .cov-ptt-n { display: block; font-size: 15px; font-weight: 600; color: var(--muted-foreground); }
  .cov-ptt-l { display: block; font-size: 11px; color: var(--muted-foreground); }
  @media (max-width: 767px) {
    .cov-row { grid-template-columns: 1.6rem minmax(0, 1fr) auto; row-gap: 6px; }
    .cov-viz { grid-column: 2 / -1; }
    .cov-ptt { grid-column: 3; grid-row: 1; }
    .cov-boxes { grid-template-columns: repeat(22, 5px); }
    .cov-boxes i { width: 5px; height: 9px; }
  }
  @media (max-width: 400px) { .cov-boxes { grid-template-columns: repeat(11, 5px); } }
/* ===== 各媒體熱門榜爬升（`#hotrank-ranking`；原型 `renderHotRank()`、規格 v3/06 §2.19） =====
   各家媒體自己站上的熱門榜，近 N 小時名次往上爬最多的。一列四欄：名次｜標題與來源｜名次軌跡｜▲N 名。 */
.hr-row { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 5.4rem 5.2rem; align-items: center; gap: 8px 14px; padding: 12px 16px; }
.hr-no { width: 2rem; font-size: 19px; font-weight: 600; text-align: right; color: var(--muted-foreground); }
.hr-row.top .hr-no { color: var(--up); }
.hr-main { min-width: 0; }
/* 標題的字級（`news-link` 的 $nlSize），不是 tailwind 的 class，所以寫在這裡 */
.hr-title { font-size: 14px; line-height: 1.45; }
.hr-sub { margin-top: 3px; display: flex; flex-wrap: wrap; align-items: center; gap: 3px 7px; font-size: 12px; color: var(--muted-foreground); }
.hr-outlet { font-weight: 600; color: var(--foreground); opacity: .82; }
.hr-views { font-variant-numeric: tabular-nums; }
.hr-multi { font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: #fff1e6; color: #c2410c; white-space: nowrap; }
.hr-new { font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: #eaf2fd; color: #1a6fd1; white-space: nowrap; }
:root[data-mode="dark"] .hr-multi { background: #3a220c; color: #fdba74; }
:root[data-mode="dark"] .hr-new { background: #16243a; color: #7fb4ee; }
/* 名次軌跡：y 軸是名次，第 1 名在最上面，所以往上爬的線會往右上走（`RankTrack`） */
.hr-track { display: block; width: 86px; height: 30px; overflow: visible; }
.hr-track .tr-line { fill: none; stroke: var(--muted-foreground); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; opacity: .5; }
.hr-track.up .tr-line { stroke: var(--up); opacity: 1; }
.hr-track .tr-dot { fill: var(--muted-foreground); }
.hr-track.up .tr-dot { fill: var(--up); }
.hr-fig { text-align: right; white-space: nowrap; }
.hr-gain { font-size: 19px; font-weight: 700; color: var(--foreground); }
.hr-row.top .hr-gain, .hr-row.boom .hr-gain { color: var(--up); }
.hr-gain-u { font-size: 11px; font-weight: 500; color: var(--muted-foreground); }
.hr-move { display: block; font-size: 11px; color: var(--muted-foreground); font-variant-numeric: tabular-nums; }
.hr-boom { display: inline-block; margin-right: 4px; vertical-align: middle; border-radius: 3px; background: var(--up); padding: 1px 4px; font-size: 10px; font-weight: 700; color: #fff; }
@media (max-width: 767px) {
  /* 手機排兩列：上面是名次＋標題＋來源，下面把軌跡跟數字靠右併成一塊（跟桌面版同一個位置感） */
  .hr-row { grid-template-columns: 1.6rem minmax(0, 1fr) auto; align-items: start; row-gap: 8px; column-gap: 11px; }
  .hr-no { font-size: 17px; line-height: 1.45; }
  .hr-main { grid-column: 2 / -1; grid-row: 1; }
  .hr-track { grid-column: 2; grid-row: 2; justify-self: end; align-self: center; width: 72px; height: 26px; }
  .hr-fig { grid-column: 3; grid-row: 2; }
}

/* 瀏覽器推播（2026-10-02 使用者核准；v2/10〈瀏覽器推播〉）：小鈴鐺面板底部、我的頁面、預言家投票完之後三個入口共用。原型 home-v6 .pushbox／.pushrow */
.pushbox { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; font-size: 12px; line-height: 1.6; color: var(--muted-foreground); }
.pushbox p { margin: 0; }
.pushbox .pb-t { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: var(--foreground); }
.pushbox .pb-t svg { width: 14px; height: 14px; flex-shrink: 0; }
.pushbox .pb-ok { font-size: 11px; font-weight: 700; color: #15803d; }
.pushbox .pbtn { height: 30px; padding: 0 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--foreground); font-size: 12.5px; font-weight: 700; }
.pushbox .pbtn:hover { background: var(--muted); }
.pushbox .pbtn.pri { border-color: transparent; background: var(--foreground); color: var(--card); }
.pushbox .pbtn.pri:hover { opacity: .88; background: var(--foreground); }
.pushbox .pch { display: flex; flex-wrap: wrap; gap: 6px; }
.pushbox .pch button { height: 28px; padding: 0 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--muted-foreground); font-size: 12px; font-weight: 600; }
.pushbox .pch button.on { border-color: #16a34a; color: #15803d; background: #f0fdf4; }
:root[data-mode="dark"] .pushbox .pch button.on { border-color: #15803d; color: #86efac; background: #0f2a1a; }
:root[data-mode="dark"] .pushbox .pb-ok { color: #86efac; }
.pushbox .pb-off { padding: 0; border: 0; background: none; color: var(--click); font-size: 12px; }
.pushbox .pb-help { padding: 7px 10px; border-radius: 8px; background: var(--muted); color: var(--foreground); }
#mb-user .np-push { padding: 10px 14px 11px; border-top: 1px solid var(--border); background: var(--card); }
#mb-user .np-push:empty { display: none; }
.mbm .pushrow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 9px 16px; border-top: 1px solid var(--border); font-size: 12px; color: var(--muted-foreground); }
.mbm .pushrow:empty { display: none; }
.mbm .pushrow .pbtn { height: 28px; padding: 0 11px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--foreground); font-size: 12px; font-weight: 700; }
.mbm .pushrow .pbtn:hover { background: var(--muted); }
.mbm .pushrow .ok { font-weight: 700; color: #15803d; }
:root[data-mode="dark"] .mbm .pushrow .ok { color: #86efac; }
