/* 📣 推廣系統（js/promo.js，伺服器第 710 項，站長 2026-11-08「推廣系統」）：外框沿用單機版小視窗（.lmui-ov .cl-ov，見 lmui.css），這裡只放裡面的東西。
   全服推廣進度條照主城建設那條（lmui.css #npc-window .bd-bar），換成藍紫色；卡片同邀請好友（invite.css .iv-card） */
.pm-ov .box { max-width: 440px; }
.pm-ov .bd { gap: 8px; padding: 8px; }
.pm-pane { display: flex; flex-direction: column; gap: 8px; }
.pm-pane[hidden] { display: none; }
.pm-card { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px; border: 1px solid #4a3f30; border-radius: 6px; background: #1a1612; color: #d9cdb2; }
.pm-h { font-size: 14px; font-weight: 700; color: #cdb98a; }
.pm-note { font-size: 13px; line-height: 1.45; color: #b9ab8f; }
.pm-none { padding: 6px 2px 2px; font-size: 13px; color: #a8997a; text-align: center; }
.pm-lb { font-size: 12px; color: #a8997a; }

/* 最上面：推廣幣、推廣碼、全服進度條 */
.pm-top { display: flex; flex-direction: column; gap: 6px; }
.pm-coin { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; padding: 6px 10px; border: 1px solid #8a6a32; border-radius: 8px;
  background: linear-gradient(180deg, #2d2210, #17110a); color: #e8d9b5; font-size: 14px; }
.pm-coin b { color: #ffe08a; font-size: 18px; letter-spacing: 1px; }
.pm-cl { display: flex; align-items: center; gap: 6px; }
.pm-cl b { font-family: Consolas, "Courier New", monospace; font-size: 17px; letter-spacing: 2px; color: #fff3cf; }
.pm-cl button, .pm-btns button, .pm-plats button, .pm-qty button { font-family: inherit; cursor: pointer; }
.pm-cl button { min-height: 30px; padding: 0 10px; border: 1px solid #b7945a; border-radius: 6px; background: linear-gradient(#3a2c14, #20180b); color: #ffe9a8; font-size: 13px; font-weight: 700; }
.pm-cnote { padding: 0 2px; font-size: 12px; color: #ffb27a; }
.pm-prog { display: flex; flex-direction: column; }
/* 點閱獎勵（站長 2026-11-08）：條＝離下一枚還差幾個；下面一行累積點閱＋領取 */
.pm-click .pm-bar { margin-top: 2px; }
.pm-bonus { position: relative; margin: 2px 0 10px; padding: 10px 10px 8px; text-align: center; color: #ffe9b0; background: radial-gradient(circle at 50% 0%, #b3261e, #6e0f0b 70%, #3a0705); border: 2px solid #f2c14e; border-radius: 8px; animation: pmBonus 1.8s ease-in-out infinite; }
.pm-bn-t { white-space: nowrap; font-size: min(22px, calc((100cqi - 24px) / 11.8)); font-weight: 900; letter-spacing: 2px; color: #ffd75e; text-shadow: 0 2px 0 #4a0603, 0 0 10px rgba(255,190,60,.8); }
.pm-bn-m { margin-top: 4px; font-size: min(18px, calc((100cqi - 30px) / 13)); font-weight: 700; color: #fff3d0; white-space: nowrap; }   /* 一行；窄手機照卡片寬縮字 */
.pm-bn-m em { font-style: normal; font-size: 1.55em; font-weight: 900; color: #ffe066; text-shadow: 0 0 10px rgba(255,210,80,.9); vertical-align: -2px; }
.pm-bn-c { margin: 4px auto 6px; display: inline-block; white-space: nowrap; padding: 2px 12px; font-size: min(14px, calc((100cqi - 50px) / 15)); color: #3a0705; background: #ffd75e; border-radius: 999px; font-weight: 700; }
.pm-bn-c b { font-size: 1.07em; font-variant-numeric: tabular-nums; }
.pm-bonus small { display: block; font-size: min(13px, calc((100cqi - 30px) / 22)); line-height: 1.5; color: #f3d9a6; white-space: nowrap; }   /* 站長「不要兩行」：每句自己一行、不斷行 */
@keyframes pmBonus { 0%, 100% { box-shadow: 0 0 6px rgba(242,193,78,.45); } 50% { box-shadow: 0 0 16px 3px rgba(242,193,78,.9); } }
/* 開服前雙倍（站長 2026-11-08「現在推廣給 ×2」，伺服器第 729 項）：點閱獎勵卡上面一行金字，時間到自己不出現 */
.pm-crow { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; color: #d9cdb2; font-size: 15px; }
.pm-crow b { color: #ffd77a; font-size: 18px; }
.pm-crow small { margin-left: 4px; color: #a99c80; font-size: 13px; }
.pm-crow .pm-go { flex: none; min-width: 112px; min-height: 40px; padding: 0 14px; font-size: 16px; }
.pm-bar { position: relative; height: 24px; border: 1px solid #4b4a8a; border-radius: 12px; background: linear-gradient(180deg, #07070f, #14142a); overflow: hidden; box-shadow: inset 0 2px 4px rgba(0,0,0,.7); }
.pm-bar i { overflow: hidden; position: absolute; left: 0; top: 0; bottom: 0; border-radius: 12px; background: linear-gradient(180deg, #d8d4ff, #8b7bff 45%, #4b3bb0); box-shadow: 0 0 10px rgba(139,123,255,.65); }
.pm-bar i::after { content: ""; position: absolute; inset: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent); animation: bdShine 2.4s linear infinite; }
.pm-bar span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px #000, 0 0 3px #000; }
.pm-perk { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid #3d3a5c; border-radius: 8px; background: rgba(20,18,32,.92); color: #b9b3d9; font-size: 13px; }
.pm-perk b { color: #e2ddff; }
.pm-perk.on { border-color: #4ade80; background: linear-gradient(180deg, rgba(34,90,50,.55), rgba(14,40,22,.8)); box-shadow: 0 0 12px rgba(74,222,128,.35); animation: bdGlow 2s ease-in-out infinite; }
.pm-perk.on b { color: #a7f3c0; }
.pm-perk.on span { color: #d9f8e3; }
.pm-perk.on em { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; }
.pm-perk.held { border-color: #a78bfa; box-shadow: 0 0 10px rgba(167,139,250,.35); }
.pm-tabs { padding: 0; }
.pm-tabs button { padding: 8px 2px; font-size: 15px; }

/* 推文：今日分享碼、分享卡、平台、送審表單、紀錄 */
.pm-code { display: flex; align-items: baseline; justify-content: center; gap: 10px; }
.pm-code b { font-family: Consolas, "Courier New", monospace; font-size: 30px; letter-spacing: 6px; color: #fff3cf; text-shadow: 0 0 8px rgba(242,193,78,.5); }
.pm-code span { font-size: 14px; color: #a8997a; }
.pm-today .pm-note { text-align: center; }
.pm-cardimg { display: block; width: auto; max-width: 100%; height: 240px; margin: 0 auto; border: 1px solid #5a4630; border-radius: 6px; object-fit: contain; background: #0e0b09; }
.pm-cardimg[hidden] { display: none; }
.pm-plats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; container-type: inline-size; }
.pm-plats button { min-height: 32px; padding: 0 2px; border: 1px solid #4a3f30; border-radius: 6px; background: #120e0a; color: #b9ad98; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pm-plats button { font-size: min(12px, 4.4cqi); }   /* 視窗窄（電腦版推廣視窗）時字跟著縮，「Instagram」不被裁成「Instagr…」；不支援 cqi 的照上一行 12px */
.pm-plats button[data-plat="line"] { grid-column: span 2; }
.pm-plats button[data-plat="threads"], .pm-plats button[data-plat="ptt"] { grid-column: span 2; }   /* 拿掉 YouTube、抖音後第二行只剩兩顆：各佔兩格排滿 */   /* LINE 排第一、佔兩格寫得下「LINE 群組／社群」（站長 2026-11-08） */
.pm-plats button.on { border-color: #f2c14e; background: #3a2c1a; color: #ffe9a8; font-weight: 700; box-shadow: 0 0 6px rgba(242,193,78,.4); }
.pm-btns { display: flex; gap: 6px; }
.pm-btns button { flex: 1 1 auto; white-space: nowrap; padding: 0 8px; min-height: 40px; border: 1px solid #b7945a; border-radius: 6px; background: linear-gradient(#3a2c14, #20180b); color: #ffe9a8; font-size: 15px; font-weight: 700; letter-spacing: 1px; }   /* 不斷行（站長 2026-11-08 截圖「複製連結」斷成兩行）：寬度照字長分 */
.pm-btns button:active, .pm-cl button:active { border-color: #f2c14e; background: #4a3512; }
.pm-fields { display: flex; flex-direction: column; gap: 6px; }
.pm-fields[hidden] { display: none; }
.pm-gate { padding: 8px; border: 1px dashed #6b5636; border-radius: 6px; font-size: 14px; color: #ffcf9a; text-align: center; }
.pm-gate[hidden] { display: none; }
.pm-form select, .pm-form input[type="url"], .pm-in input, .pm-url { box-sizing: border-box; width: 100%; height: 38px; padding: 0 8px; border: 1px solid #5a4630; border-radius: 6px; background: #0e0b09; color: #f0e2bf;
  font-family: inherit; font-size: 15px; outline: none; }
.pm-form select:focus, .pm-form input[type="url"]:focus, .pm-in input:focus { border-color: #c9a25a; }
.pm-form select option:disabled { color: #6b6152; }
.pm-file { position: relative; display: flex; align-items: center; gap: 8px; min-height: 38px; cursor: pointer; }
.pm-file input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.pm-fbtn { flex: none; display: flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid #b7945a; border-radius: 6px; background: linear-gradient(#3a2c14, #20180b); color: #ffe9a8; font-size: 14px; font-weight: 700; }
.pm-fname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: #a8997a; }
.pm-go { min-height: 44px; border: 1px solid #f2c14e; border-radius: 6px; background: linear-gradient(#8a6417, #4a3309); color: #fff3cf; font-family: inherit; font-size: 17px; font-weight: 700; letter-spacing: 1px;
  text-shadow: 0 1px 0 #000; box-shadow: 0 0 10px rgba(242,193,78,.4); cursor: pointer; }
.pm-go:disabled { border-color: #4a3f30; background: #1a1612; color: #7a6d58; box-shadow: none; cursor: default; }
.pm-posts { gap: 0; }
.pm-posts .pm-h { margin-bottom: 4px; }
.pm-post, .pm-fr { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 4px 2px; border-top: 1px solid #2f281e; }
.pm-pf { flex: none; width: 5.2em; font-size: 13px; color: #f1ead9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pm-pd { flex: none; font-size: 12px; color: #a8997a; }
.pm-st { margin-left: auto; min-width: 0; font-size: 13px; color: #a8997a; text-align: right; }
.pm-st.ok { color: #8fe08a; }
.pm-st.bad { color: #ff9b8a; }
.pm-st.off { color: #8a7f6c; }
.pm-st.lit { color: #ffd77a; font-weight: 700; }

/* 拉人 */
.pm-url { font-size: 13px; }
.pm-frs { gap: 0; }
.pm-frs .pm-h { margin-bottom: 4px; }
.pm-lv { flex: none; width: 3.6em; font-size: 12px; color: #cdb98a; white-space: nowrap; }
.pm-nm { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: #f1ead9; }
.pm-days { flex: none; font-size: 12px; color: #a8997a; white-space: nowrap; }
.pm-fr .pm-st { flex: none; margin-left: 0; white-space: nowrap; }
.pm-src { display: flex; flex-wrap: wrap; gap: 6px; }
.pm-src span { display: flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid #4a3f30; border-radius: 14px; background: #120e0a; font-size: 13px; }
.pm-src em { font-style: normal; color: #d9cdb2; }
.pm-src b { color: #ffe08a; }

/* 兌換 */
.pm-closed { border-color: #6b5636; color: #ffcf9a; font-size: 13px; text-align: center; }
.pm-shop { gap: 0; padding: 4px 8px; }
.pm-item { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 4px 0; border-top: 1px solid #2f281e; }
.pm-item:first-child { border-top: 0; }
.pm-ic { flex: none; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; }
.pm-ic img { width: 100%; height: 100%; object-fit: contain; }
.pm-ic img.ic35 { image-rendering: pixelated; }
.pm-im { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pm-in { display: flex; gap: 6px; }
.pm-iname { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; color: #f1ead9; }
.pm-ip { font-size: 12px; color: #a8997a; }
.pm-ip b { color: #ffe08a; }
.pm-ctl { flex: none; display: flex; flex-direction: column; align-items: stretch; gap: 4px; width: 100px; }
.pm-qty { display: flex; align-items: center; justify-content: space-between; gap: 2px; }
.pm-qty button { width: 30px; height: 26px; padding: 0; border: 1px solid #5a4630; border-radius: 5px; background: #120e0a; color: #f0e2bf; font-size: 15px; }
.pm-qty b { min-width: 1.6em; text-align: center; font-size: 14px; color: #fff3cf; }
.pm-buy { min-height: 32px; padding: 0 8px; border: 1px solid #4a3f30; border-radius: 6px; background: #1a1612; color: #7a6d58; font-family: inherit; font-size: 13px; font-weight: 700; white-space: nowrap; cursor: default; }
.pm-buy.lit { border-color: #f2c14e; background: linear-gradient(#8a6417, #4a3309); color: #fff3cf; cursor: pointer; }
.pm-in input { flex: 1 1 auto; min-width: 0; font-family: Consolas, "Courier New", monospace; letter-spacing: 3px; text-transform: uppercase; }
.pm-in .pm-go { flex: none; min-width: 86px; min-height: 38px; font-size: 15px; letter-spacing: 2px; }

/* 排行：同主城建設的貢獻榜 */
.pm-rank { padding: 10px 12px; }
.pm-rh { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 6px; border-bottom: 1px solid #3e3122; }
.pm-rh b { color: #ffe08a; letter-spacing: 1px; }
.pm-rh em { font-style: normal; color: #c9b58a; font-size: 13px; }
.pm-rank ol { margin: 0; padding: 0; list-style: none; color: #d9cba8; }
.pm-rank li { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 6px; }
.pm-rank li i { flex: none; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 12px; font-weight: 700; color: #c9b58a; background: #2a2016; }
.pm-rank li.gold i { color: #3a2600; background: radial-gradient(circle at 35% 30%, #fff3b0, #e0a82a); box-shadow: 0 0 6px rgba(255,200,60,.6); }
.pm-rank li.silver i { color: #222; background: radial-gradient(circle at 35% 30%, #ffffff, #a8b0bc); }
.pm-rank li.bronze i { color: #2a1404; background: radial-gradient(circle at 35% 30%, #ffd2a8, #b8733a); }
.pm-rank li.gold span { color: #ffe08a; }
.pm-rank li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-rank li b { color: #e8d9b5; }
.pm-rank li.me { background: rgba(255,216,98,.12); box-shadow: inset 0 0 0 1px rgba(255,216,98,.35); }

/* 最下面：即將推出（純文字、不能按） */
.pm-soon { display: flex; flex-direction: column; gap: 3px; margin-top: 2px; padding: 8px 10px; border: 1px dashed #4a3f30; border-radius: 6px; color: #8d806a; font-size: 12px; line-height: 1.45; }
.pm-soon b { color: #a8997a; font-size: 13px; }
.pm-res { padding: 6px 8px 8px; font-size: 14px; color: #cfd8a8; text-align: center; }
.pm-res[hidden] { display: none; }

/* ── 大字版（站長 2026-11-08「介面幫我精緻化，簡單明瞭、字體大，大年紀在玩的，排版又不會亂」）──
   上面各區塊的原始樣式不動，這裡統一放大字、拉開間距；手機橫放的矮畫面照下面 @media 縮回去 */
.pm-ov .box { max-width: 480px; }
.pm-ov .bd { gap: 10px; padding: 10px; }
.pm-pane { gap: 10px; }
.pm-card { gap: 10px; padding: 12px 14px; border-radius: 10px; }
.pm-h { font-size: 18px; letter-spacing: 1px; }
.pm-note, .pm-none { font-size: 16px; line-height: 1.6; }
.pm-lb { font-size: 15px; }
.pm-coin { padding: 10px 14px; border-radius: 10px; font-size: 17px; }
.pm-coin b { font-size: 26px; }
.pm-cl b { font-size: 19px; }
.pm-cl button { min-height: 36px; padding: 0 14px; font-size: 15px; }
.pm-cnote { font-size: 15px; }
.pm-bar { height: 32px; border-radius: 16px; }
.pm-bar i { border-radius: 16px; }
.pm-bar span { font-size: 16px; }
.pm-perk { padding: 10px 14px; border-radius: 10px; font-size: 16px; line-height: 1.5; }
.pm-ov .tabs.pm-tabs button { padding: 11px 2px; font-size: 18px; font-weight: 700; }   /* 要蓋過外框 .cl-ov .tabs button */
.pm-guide ol li + li { margin-top: 4px; }
.pm-go { min-height: 52px; font-size: 19px; border-radius: 8px; }
.pm-crow { margin-top: 4px; font-size: 18px; }
.pm-crow b { font-size: 24px; }
.pm-crow .pm-go { min-width: 130px; min-height: 50px; font-size: 19px; }
.pm-cardimg { height: 260px; border-radius: 8px; }
/* 平台：LINE 一整排；FB、IG、Threads 只放圖示排一排 */
.pm-plats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pm-plats button { min-height: 46px; border-radius: 8px; font-size: 17px; }
.pm-plats button[data-plat="threads"], .pm-plats button[data-plat="ptt"] { grid-column: auto; }
.pm-plats button[data-plat="line"] { grid-column: 1 / -1; }   /* LINE 自己一整排（圖示＋字），下面四個只有圖示排一排 */
.pm-plats button:not([data-plat="line"]) .pm-pi { width: 30px; height: 30px; }
.pm-plats button { display: flex; align-items: center; justify-content: center; gap: 8px; }
.pm-pi { flex: none; display: flex; width: 24px; height: 24px; }
.pm-pi svg { width: 100%; height: 100%; }
.pm-plats button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pm-plats button:not(.on) .pm-pi { opacity: .75; }
/* 視窗窄（電腦版推廣視窗）：平台一排一顆、下面的按鈕排不下就換行，字都不切 */
.pm-card { container-type: inline-size; }
.pm-btns { flex-wrap: wrap; }
.pm-btns { gap: 8px; }
.pm-btns button { min-height: 52px; border-radius: 8px; font-size: 18px; }
.pm-rules li + li { margin-top: 4px; }
.pm-url { height: 46px; font-size: 15px; border-radius: 8px; }
.pm-post, .pm-fr { min-height: 46px; gap: 10px; padding: 8px 2px; }
.pm-lv, .pm-days, .pm-st, .pm-pd { font-size: 15px; }
.pm-nm, .pm-pf { font-size: 17px; }
.pm-src span { padding: 6px 12px; font-size: 15px; }
.pm-closed { font-size: 16px; }
.pm-item { min-height: 68px; gap: 10px; padding: 8px 0; }
.pm-ic { width: 48px; height: 48px; padding: 4px; box-sizing: border-box; background: radial-gradient(circle at 50% 40%, #3a2f1f, #15110b 75%); border: 1px solid #6b5530; border-radius: 6px; }   /* 站長 2026-11-08「怎麼沒有排好」：每個圖示一樣大的框、置中，瓶子、蛋糕看起來才對齊 */
.pm-iname { font-size: min(17px, calc((100cqi - 60px) / 9.2)); line-height: 1.35; white-space: nowrap; overflow: visible; }   /* 站長「不要兩行」：名字一行（按鈕改到下排，名字有整行寬） */
.pm-ip { font-size: min(15px, calc((100cqi - 60px) / 12)); white-space: nowrap; }
/* 兌換一格兩排（站長 2026-11-08「怎麼沒有排好」「不要兩行」）：上排圖示＋名字＋價錢佔整行、下排數量和兌換鈕並排——原本按鈕固定 124 寬，手機上名字只剩 70 幾 */
.pm-shop .pm-item { flex-wrap: wrap; row-gap: 8px; container-type: inline-size; }
.pm-shop .pm-item .pm-info { flex: 1 1 100%; }
.pm-ctl { width: 100%; flex-direction: row; align-items: center; gap: 10px; }
.pm-ctl .pm-qty { flex: none; }
.pm-ctl .pm-buy { flex: 1; }
.pm-qty button { width: 38px; height: 34px; border-radius: 6px; font-size: 18px; }
.pm-qty b { font-size: 17px; }
.pm-buy { min-height: 40px; border-radius: 8px; font-size: 16px; }
.pm-in input { height: 46px; font-size: 17px; }
.pm-in .pm-go { min-height: 46px; font-size: 17px; }
.pm-rank { padding: 12px 14px; }
.pm-rh b { font-size: 18px; }
.pm-rh em { font-size: 15px; }
.pm-rank li { gap: 10px; padding: 8px 8px; font-size: 17px; }
.pm-rank li i { width: 28px; height: 28px; font-size: 15px; }
.pm-soon { gap: 4px; padding: 10px 14px; font-size: 14px; line-height: 1.6; border-radius: 10px; }
.pm-soon b { font-size: 15px; }
.pm-res { font-size: 16px; }

/* 站長 2026-11-08「點了沒引導我去分享」：推文頁最上面的三步引導、「開始分享」捲到分享卡時亮一下 */
.pm-guide { border-color: #c9a25a; background: linear-gradient(180deg, #2a2112, #1a1612); }
.pm-guide ol { margin: 0; padding-left: 24px; font-size: 17px; line-height: 1.75; }
.pm-guide .pm-go { align-self: stretch; padding: 12px 0; font: inherit; font-size: 19px; font-weight: 800; letter-spacing: .12em; color: #2a1c08; background: linear-gradient(#f3d98f, #c9973e); border: 1px solid #7d6c4c; border-radius: 8px; cursor: pointer; }
.pm-flash { animation: pmFlash 1.6s ease-out; }
@keyframes pmFlash { 0%, 30% { box-shadow: 0 0 0 2px #f3d98f, 0 0 18px rgba(243,217,143,.7); } 100% { box-shadow: none; } }
/* 兌換清單：圖示＋名字整塊是按鈕，點了看道具說明 */
.pm-item .pm-info { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; padding: 0; font: inherit; color: inherit; text-align: left; background: none; border: 0; cursor: pointer; }
.pm-item .pm-info:active { opacity: .7; }
/* 送審紀錄每則的推廣幣（可拿／已拿／幾月幾日再拿） */
.pm-post .pm-pc { flex: none; margin-left: 6px; font-size: 15px; color: #f5d77b; white-space: nowrap; }
.pm-post .pm-pc:empty { display: none; }
/* 退回那則的「重送」鈕 */
.pm-post .pm-redo { flex: none; margin-left: 6px; padding: 3px 10px; font: inherit; font-size: 13px; font-weight: 700; color: #2a1c08; background: linear-gradient(#f3d98f, #c9973e); border: 1px solid #7d6c4c; border-radius: 4px; cursor: pointer; }
/* 分享卡下面：要貼的文字（看得到內容，按分享會自動複製） */
.pm-text { width: 100%; box-sizing: border-box; padding: 10px 12px; font: 16px/1.6 "Microsoft JhengHei", "PingFang TC", sans-serif; color: #f1ead9; background: #0f0d0a; border: 1px solid #4a3f30; border-radius: 8px; resize: none; }
/* 推文規則卡 */
.pm-rules ul { margin: 0; padding-left: 22px; font-size: 16px; line-height: 1.75; color: #d9cdb2; }
.pm-rules li.pm-warn { color: #ffb4a6; font-weight: 700; }
/* ── 華麗版外觀（站長 2026-11-08「推文介面沒有很華麗，只是排版還不錯」）：只換顏色、框、光澤，不動排版和字級 ── */
.pm-card { border: 1px solid #6b5530; background: radial-gradient(120% 70% at 50% 0%, rgba(201,162,90,.10), transparent 60%), linear-gradient(180deg, #221a10 0%, #15100a 100%);
  box-shadow: inset 0 0 0 1px rgba(242,193,78,.10), inset 0 1px 0 rgba(255,230,160,.10), 0 2px 8px rgba(0,0,0,.45); }
/* 卡片標題：金色漸層字、左右小菱形、下面一條淡出的金線 */
.pm-h { position: relative; display: flex; align-items: center; gap: 8px; padding-bottom: 8px; background: linear-gradient(180deg, #fff1c2, #e2b75a 60%, #b8862e); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pm-h::before { content: "◆"; font-size: 11px; color: #e2b75a; -webkit-text-fill-color: #e2b75a; text-shadow: 0 0 6px rgba(242,193,78,.6); }
.pm-h::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, rgba(226,183,90,.7), rgba(226,183,90,.15) 70%, transparent); }
/* 推廣幣：金框、金幣、數字發光 */
.pm-coin { border: 1px solid #c9a25a; background: radial-gradient(90% 120% at 0% 50%, rgba(242,193,78,.18), transparent 60%), linear-gradient(180deg, #33260f, #17110a);
  box-shadow: inset 0 0 0 1px rgba(255,230,160,.12), 0 0 12px rgba(242,193,78,.18); }
.pm-cv { display: inline-flex; align-items: center; gap: 8px; }
.pm-cv::before { content: ""; flex: none; width: 26px; height: 26px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff6c8, #f2c14e 45%, #a8741c 100%);
  box-shadow: inset 0 -2px 3px rgba(90,55,5,.6), 0 0 8px rgba(242,193,78,.55); }
.pm-coin b { text-shadow: 0 0 10px rgba(255,214,110,.55), 0 1px 0 #000; }
.pm-perk { border-color: #5b5490; background: linear-gradient(180deg, rgba(40,34,70,.95), rgba(18,16,34,.95)); box-shadow: inset 0 0 0 1px rgba(170,160,255,.10); }
/* 分頁：選中的金色、發光 */
.pm-ov .tabs.pm-tabs button { border-color: #5a4630; background: linear-gradient(180deg, #1e170e, #120d08); color: #b9ad98; transition: color .15s; }
.pm-ov .tabs.pm-tabs button.on { border-color: #e2b75a; background: linear-gradient(180deg, #6e4f16, #3a2a0e); color: #fff1c2; text-shadow: 0 0 6px rgba(242,193,78,.6); box-shadow: 0 -2px 10px rgba(242,193,78,.25); }
/* 三步說明：數字換成金色圓章 */
.pm-guide { border-color: #c9a25a; box-shadow: inset 0 0 0 1px rgba(255,230,160,.14), 0 0 14px rgba(242,193,78,.15), 0 2px 8px rgba(0,0,0,.45); }
.pm-guide ol { list-style: none; padding-left: 0; counter-reset: pmstep; }
.pm-guide ol li { position: relative; padding-left: 40px; counter-increment: pmstep; }
.pm-guide ol li::before { content: counter(pmstep); position: absolute; left: 0; top: 1px; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800; color: #2a1c08; background: radial-gradient(circle at 35% 30%, #fff3c4, #e2b75a 55%, #a8741c); box-shadow: 0 0 6px rgba(242,193,78,.5); }
/* 主要按鈕：金色漸層＋一道光掃過（光在字後面：isolation＋z-index -1，不然掃過時字會變淡） */
.pm-go:not(:disabled), .pm-guide .pm-go { position: relative; overflow: hidden; isolation: isolate; border-color: #f2c14e; background: linear-gradient(180deg, #ffe39a 0%, #e2b75a 45%, #a8741c 100%); color: #2a1c08; text-shadow: 0 1px 0 rgba(255,240,200,.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 0 14px rgba(242,193,78,.45), 0 2px 6px rgba(0,0,0,.5); }
.pm-go:not(:disabled)::before, .pm-guide .pm-go::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -40%; width: 30%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); animation: pmSweep 3.2s ease-in-out infinite; }
@keyframes pmSweep { 0%, 60% { left: -40%; } 100% { left: 120%; } }
.pm-btns button { border-color: #c9a25a; background: linear-gradient(180deg, #4a3714, #241a0b); box-shadow: inset 0 1px 0 rgba(255,230,160,.18), 0 2px 6px rgba(0,0,0,.45); }
/* 平台：選中的金框發光 */
.pm-plats button { background: linear-gradient(180deg, #1a140d, #0f0b07); }
.pm-plats button.on { border-color: #f2c14e; background: linear-gradient(180deg, #4a3714, #2a1f0c); box-shadow: 0 0 10px rgba(242,193,78,.45), inset 0 1px 0 rgba(255,230,160,.2); }
/* 分享卡圖：金框 */
.pm-cardimg { border: 2px solid #c9a25a; box-shadow: 0 0 16px rgba(242,193,78,.25), 0 4px 12px rgba(0,0,0,.6); }
/* 規則：金色菱形 */
.pm-rules ul { list-style: none; padding-left: 0; }
.pm-rules li { position: relative; padding-left: 22px; }
.pm-rules li::before { content: "◆"; position: absolute; left: 2px; top: 0; font-size: 11px; color: #e2b75a; }
.pm-rules li.pm-warn::before { color: #ff8a7a; }
/* ── 華麗版第二輪（站長 2026-11-08「感覺沒什麼變化」）：雙線金框、標題整條金色橫幅、推廣幣放大 ── */
.pm-card { border: 1px solid #c9a25a; box-shadow: inset 0 0 0 3px #17110a, inset 0 0 0 4px rgba(201,162,90,.55), 0 0 12px rgba(242,193,78,.12), 0 3px 10px rgba(0,0,0,.55); }
.pm-h { justify-content: center; margin: -12px -14px 2px; padding: 9px 14px; border-bottom: 1px solid #c9a25a; border-radius: 9px 9px 0 0;
  background: radial-gradient(60% 140% at 50% 0%, rgba(255,214,110,.28), transparent 70%), linear-gradient(180deg, #4a3612, #24190a);
  -webkit-background-clip: border-box; background-clip: border-box;
  color: #ffe9a8; -webkit-text-fill-color: #ffe9a8; text-shadow: 0 0 8px rgba(242,193,78,.55), 0 1px 0 #000; font-size: 19px; letter-spacing: 3px; }
.pm-h::before, .pm-h::after { content: "❖"; position: static; width: auto; height: auto; background: none; font-size: 13px; color: #f2c14e; -webkit-text-fill-color: #f2c14e; letter-spacing: 0; text-shadow: 0 0 6px rgba(242,193,78,.7); }
.pm-coin { padding: 12px 16px; border: 2px solid #e2b75a; box-shadow: inset 0 0 0 3px #1e160b, inset 0 0 0 4px rgba(242,193,78,.45), 0 0 16px rgba(242,193,78,.28); }
.pm-cv { font-size: 18px; }
.pm-cv::before { width: 36px; height: 36px; }
.pm-cv b { font-size: 32px; }   /* 只放大推廣幣數字，推廣碼照舊 */
.pm-bar { height: 36px; border-color: #8b7bff; box-shadow: inset 0 2px 4px rgba(0,0,0,.7), 0 0 10px rgba(139,123,255,.35); }
.pm-bar span { font-size: 17px; }
.pm-ov .tabs.pm-tabs button { min-height: 50px; border-radius: 10px 10px 0 0; font-size: 19px; }
.pm-ov .tabs.pm-tabs button.on { background: linear-gradient(180deg, #ffe39a, #e2b75a 50%, #a8741c); color: #2a1c08; text-shadow: 0 1px 0 rgba(255,240,200,.6); }
/* 「文章已寫好，點我開始分享」不斷行（站長 2026-11-08 電腦版截圖「分享」的「享」掉到第二行）：視窗窄字跟著縮 */
.pm-sharego { white-space: nowrap; letter-spacing: 0; padding: 0 8px; font-size: min(24px, calc((100cqi - 24px) / 12.4)); }   /* 站長「字體大一點、滿版沒關係，不要二行」：12 個字照按鈕寬度撐滿 */
/* 選 Facebook：分享鈕拆成同一排兩顆一樣大的「發到動態」「發到社團」（promo.js fbRow；站長「沒一體」），下面一行提示同寬置中 */
.pm-sharego[hidden] { display: none; }
.pm-fbgw { display: flex; flex-direction: column; gap: 6px; }
.pm-fbgw[hidden] { display: none; }
.pm-fbrow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pm-fbgo { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 52px; padding: 0 6px; font-family: inherit; font-weight: 800; letter-spacing: 1px; white-space: nowrap;
  font-size: min(21px, calc(((100cqi - 8px) / 2 - 22px) / 5.8)); }   /* 一顆＝圖示＋4 個字，照卡片寬縮，360 寬也一行 */
.pm-fbgo .pm-pi { width: 1.25em; height: 1.25em; filter: drop-shadow(0 1px 1px rgba(0,0,0,.35)); }
.pm-fbrow > button:not(.pm-go) { border: 1px solid #c9a25a; border-radius: 8px; color: #ffe9a8; cursor: pointer; background: linear-gradient(180deg, #4a3714, #241a0b);
  box-shadow: inset 0 1px 0 rgba(255,230,160,.18), 0 2px 6px rgba(0,0,0,.45); }   /* 拉人頁：同那頁的「複製連結」款 */
.pm-fbrow > button:not(.pm-go):active { border-color: #f2c14e; background: #4a3512; }
/* 「文宣已幫你寫好」小視窗（promo.js fbAsk）：蓋在推廣視窗上、同款雙線金框；文宣框可捲動、可長按選字；大按鈕＋三步驟每步一行 */
.pm-dlg { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; padding: 16px 12px; background: rgba(0,0,0,.66); }
.pm-dlg[hidden] { display: none; }
.pm-dbox { box-sizing: border-box; width: 100%; max-width: 400px; max-height: 100%; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 0 14px 16px; container-type: inline-size;
  border: 1px solid #c9a25a; border-radius: 12px; color: #d9cdb2; font-family: "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;
  background: radial-gradient(120% 60% at 50% 0%, rgba(201,162,90,.14), transparent 60%), linear-gradient(180deg, #241b10 0%, #14100a 100%);
  box-shadow: inset 0 0 0 3px #17110a, inset 0 0 0 4px rgba(201,162,90,.55), 0 0 26px rgba(242,193,78,.28), 0 10px 30px rgba(0,0,0,.7); animation: pmDlgIn .18s ease-out; }
@keyframes pmDlgIn { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
.pm-dhd { position: relative; display: flex; align-items: center; justify-content: center; margin: 0 -14px; padding: 12px 48px; border-bottom: 1px solid #c9a25a; border-radius: 11px 11px 0 0;
  background: radial-gradient(60% 140% at 50% 0%, rgba(255,214,110,.3), transparent 70%), linear-gradient(180deg, #4a3612, #24190a);
  color: #ffe9a8; font-size: min(21px, calc((100cqi - 96px) / 7.4)); font-weight: 800; letter-spacing: 3px; white-space: nowrap; text-shadow: 0 0 8px rgba(242,193,78,.55), 0 1px 0 #000; }
.pm-dhd button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0;
  border: 1px solid #8a6a32; border-radius: 50%; background: rgba(0,0,0,.35); color: #ffe9a8; font: inherit; font-size: 17px; letter-spacing: 0; cursor: pointer; }
.pm-dhd button:active { border-color: #f2c14e; background: #4a3512; }
.pm-dtext { box-sizing: border-box; display: block; width: 100%; height: 128px; margin: 0; padding: 10px 12px; resize: none; overflow-y: auto; outline: none;
  border: 1px solid #6b5530; border-radius: 8px; background: #0c0a07; color: #f6ecd2; font: 16px/1.65 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.7); -webkit-user-select: text; user-select: text; -webkit-touch-callout: default; }   /* 16px：iPhone 點進去不會放大畫面；推廣視窗外框整個 user-select:none，這裡要開回來才能長按選字 */
.pm-dtext:focus { border-color: #c9a25a; }
.pm-dtext.pm-dflash { animation: pmDFlash .9s ease-out; }   /* 複製好了：文宣框亮一下綠光 */
@keyframes pmDFlash { 0%, 25% { border-color: #8fe08a; background: #16301a; box-shadow: 0 0 0 2px rgba(143,224,138,.6), 0 0 18px rgba(143,224,138,.55), inset 0 2px 6px rgba(0,0,0,.7); } 100% { } }
/* ①② 兩顆大按鈕：字一行、照視窗寬縮 */
.pm-dbtn { min-height: 54px; padding: 0 8px; white-space: nowrap; letter-spacing: 1px; font-weight: 800; font-size: min(22px, calc((100cqi - 20px) / var(--bn, 11.6))); }
.pm-dcopy.pm-dok { border-color: #8fe08a; background: linear-gradient(180deg, #d8f7c8 0%, #5cbf5a 45%, #2b7a30 100%); color: #0c2a0e; text-shadow: 0 1px 0 rgba(220,255,210,.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 0 14px rgba(110,220,110,.5), 0 2px 6px rgba(0,0,0,.5); }
.pm-dcopy.pm-dok::before { display: none; }
/* 示意圖：仿 FB 發文畫面（白底）＋右邊金色「長按 → 貼上」對話框；手指在「留個話吧……」上點一點、跳出「貼上」 */
.pm-dimg { display: flex; align-items: center; gap: 10px; }
.pm-fbm { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 0 0 8px; overflow: hidden; border-radius: 10px; background: #fff; color: #050505;
  box-shadow: 0 0 0 1px rgba(201,162,90,.6), 0 4px 12px rgba(0,0,0,.55); font-family: -apple-system, "PingFang TC", "Microsoft JhengHei", sans-serif; }
.pm-fbm-hd { display: flex; align-items: center; justify-content: space-between; padding: 6px 8px; border-bottom: 1px solid #e4e6eb; font-size: 11px; white-space: nowrap; }
.pm-fbm-hd span { color: #65676b; }
.pm-fbm-hd b { font-size: 12px; }
.pm-fbm-hd .pm-fbm-pub { color: #1877f2; font-weight: 700; }
.pm-dimg[data-p="ig"] .pm-fbm-pub { color: #0095f6; }
.pm-dimg[data-p="threads"] .pm-fbm-pub { color: #000; }
.pm-fbm-me { display: flex; align-items: center; gap: 6px; padding: 0 8px; }
.pm-fbm-av { flex: none; width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(180deg, #c9a25a, #8a6417); }
.pm-fbm-nm { width: 52px; height: 7px; border-radius: 4px; background: #dfe1e5; }
.pm-fbm-in { position: relative; height: 30px; margin: 0 8px; display: flex; align-items: center; }
.pm-fbm-ph { font-size: 14px; color: #65676b; white-space: nowrap; }
.pm-fbm-menu { position: absolute; left: 6px; top: -22px; padding: 3px 10px; border-radius: 7px; background: #2c2c2e; color: #fff; font-size: 12px; white-space: nowrap; opacity: 0; transform: translateY(4px);
  animation: pmFbMenu 2.6s ease-in-out infinite; }
.pm-fbm-menu::after { content: ""; position: absolute; left: 14px; bottom: -5px; border: 5px solid transparent; border-bottom: 0; border-top-color: #2c2c2e; }
.pm-fbm-tap { position: absolute; left: 34px; top: 15px; width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%; background: rgba(24,119,242,.35); opacity: 0; animation: pmFbTap 2.6s ease-out infinite; }
.pm-fbm-hand { position: absolute; left: 24px; top: 14px; font-size: 24px; line-height: 1; filter: drop-shadow(0 2px 2px rgba(0,0,0,.35)); animation: pmFbHand 2.6s ease-in-out infinite; }
.pm-fbm-lk { display: flex; gap: 6px; margin: 2px 8px 0; padding: 5px; border: 1px solid #e4e6eb; border-radius: 6px; background: #f0f2f5; }
.pm-fbm-lk > i { flex: none; width: 34px; height: 24px; border-radius: 3px; background: linear-gradient(135deg, #3a2c14, #c9a25a); }
.pm-fbm-lk span { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.pm-fbm-lk span i { height: 5px; border-radius: 3px; background: #ccd0d5; }
.pm-fbm-lk span i + i { width: 60%; }
@keyframes pmFbHand { 0%, 100% { transform: translate(4px, 10px); } 18%, 62% { transform: translate(0, 0) scale(.9); } 78% { transform: translate(4px, 10px); } }
@keyframes pmFbTap { 0%, 16% { opacity: 0; transform: scale(.4); } 22% { opacity: 1; } 55% { opacity: 0; transform: scale(1.6); } 100% { opacity: 0; } }
@keyframes pmFbMenu { 0%, 38% { opacity: 0; transform: translateY(4px); } 46%, 86% { opacity: 1; transform: none; } 96%, 100% { opacity: 0; transform: translateY(4px); } }
.pm-dtip { flex: none; position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 10px; border: 1px solid #e2b75a; border-radius: 10px; white-space: nowrap;
  background: linear-gradient(180deg, #4a3612, #24190a); box-shadow: 0 0 10px rgba(242,193,78,.35); }
.pm-dtip::before { content: ""; position: absolute; left: -7px; top: 50%; margin-top: -6px; border: 6px solid transparent; border-left: 0; border-right-color: #e2b75a; }
.pm-dtip b { font-size: min(20px, calc(100cqi / 14)); color: #ffe08a; letter-spacing: 2px; text-shadow: 0 0 8px rgba(242,193,78,.6); }
.pm-dtip span { font-size: min(16px, calc(100cqi / 17)); color: #fff1c2; font-weight: 700; }
/* 示意圖下面那行大字（站長「一定要讓他知道」）：一行、照視窗寬縮 */
.pm-dwarn { text-align: center; white-space: nowrap; font-weight: 900; letter-spacing: 0; color: #ffd75e; font-size: min(20px, calc((100cqi - 4px) / var(--wn, 16.4))); text-shadow: 0 0 10px rgba(255,190,60,.55), 0 1px 0 #000; }
@media (prefers-reduced-motion: reduce) {   /* 動畫拿掉：手指停在按下去的位置、「貼上」一直顯示 */
  .pm-fbm-hand, .pm-fbm-tap, .pm-fbm-menu, .pm-dtext.pm-dflash, .pm-dbox { animation: none; }
  .pm-fbm-menu { opacity: 1; transform: none; }
}
@media (max-height: 500px) {   /* 矮的畫面（手機橫放）：縮一點，同 invite.css */
  .pm-ov .bd { gap: 5px; padding-top: 4px; }
  .pm-card { padding: 5px 8px; gap: 4px; }
  .pm-cardimg { height: 150px; }
  .pm-h { font-size: 15px; } .pm-note, .pm-guide ol, .pm-rules ul { font-size: 14px; line-height: 1.5; } .pm-ov .tabs.pm-tabs button { padding: 6px 2px; font-size: 15px; }
  .pm-bar { height: 24px; } .pm-bar span { font-size: 13px; } .pm-coin b { font-size: 20px; } .pm-crow .pm-go { min-height: 36px; font-size: 15px; } .pm-plats button { min-height: 32px; }
  .pm-btns button, .pm-go, .pm-fbgo { min-height: 34px; font-size: 14px; }
  .pm-dbox { gap: 6px; } .pm-dhd { padding-top: 6px; padding-bottom: 6px; } .pm-dtext { height: 64px; } .pm-dimg { display: none; } .pm-dbtn { min-height: 40px; font-size: 16px; }
  .pm-form select, .pm-form input[type="url"], .pm-in input { height: 32px; }
}
/* ── 號角勳章（伺服器第 732 項，promo.js hornHtml）：現在幾級＋進度條＋升級鈕、每週補給包、五級一覽；字都一行（站長「不要兩行」） ── */
.pm-hsv { flex: none; width: 26px; height: 20px; }
.pm-hnow { display: flex; align-items: center; gap: 12px; }
.pm-hnow > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pm-hbig { flex: none; width: 64px; height: 48px; filter: drop-shadow(0 0 6px rgba(242,193,78,.35)); }
.pm-hnone { display: block; border: 2px dashed #5a4630; border-radius: 10px; filter: none; }
.pm-hname { font-size: 22px; letter-spacing: 2px; white-space: nowrap; color: #e8d9b5; }
.pm-hname.h1 { color: #dfe5ec; } .pm-hname.h2 { color: #f0b27a; } .pm-hname.h3 { color: #ffffff; } .pm-hname.h4 { color: #ffd54a; }
.pm-hname.h5 { background: linear-gradient(90deg, #ff7ad9, #ffe27a, #7de3ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pm-hnow span { font-size: 15px; color: #b9ab8f; white-space: nowrap; }
.pm-hnow em { font-style: normal; font-weight: 700; color: #ffe08a; }
.pm-hbar i { background: linear-gradient(180deg, #fff1c2, #e2b75a 45%, #a8741c); box-shadow: 0 0 10px rgba(242,193,78,.55); }
.pm-hbar { border-color: #c9a25a; }
.pm-hup, .pm-hpack .pm-go { white-space: nowrap; letter-spacing: 0; padding: 0 8px; font-size: min(19px, calc((100cqi - 24px) / 13)); }
.pm-hmax { text-align: center; color: #ffe08a; }
.pm-hpk { font-size: 16px; color: #f1ead9; white-space: nowrap; }
.pm-ht { display: flex; align-items: flex-start; gap: 10px; padding: 8px 6px; border-top: 1px solid #2f281e; border-radius: 6px; }
.pm-ht:first-of-type { border-top: 0; }
.pm-ht .pm-hsv { width: 34px; height: 26px; margin-top: 2px; }
.pm-ht.now { background: rgba(255,216,98,.12); box-shadow: inset 0 0 0 1px rgba(255,216,98,.4); }
.pm-ht.got .pm-htm b::after { content: " ✓"; color: #9be29b; }
.pm-htm { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pm-htm b { font-size: 17px; color: #e8d9b5; white-space: nowrap; }
.pm-htm span { font-size: 14px; color: #a8997a; white-space: nowrap; }
.pm-htm i { font-style: normal; font-size: 15px; color: #d9cdb2; white-space: nowrap; }
.pm-htm i::before { content: "・"; color: #e2b75a; }
/* 推廣幣那排的號角小牌子（點了到號角分頁） */
.pm-hchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font: inherit; font-size: 15px; font-weight: 700; white-space: nowrap; color: #ffe9a8; background: rgba(0,0,0,.35); border: 1px solid #c9a25a; border-radius: 14px; cursor: pointer; }
.pm-hchip.h5 { border-color: #ff9ce6; box-shadow: 0 0 8px rgba(255,140,220,.45); }
/* 兌換：號角折扣的原價劃掉 */
.pm-ip s { color: #7a6d58; }
/* 號角頁窄手機不斷行：字級照卡片寬度縮（100cqi＝卡片內寬）；分頁五顆在 320 寬也一行 */
.pm-ov .tabs.pm-tabs button { white-space: nowrap; padding-left: 0; padding-right: 0; font-size: min(19px, 5vw); letter-spacing: 0; }
.pm-horn, .pm-hpack, .pm-htiers { container-type: inline-size; }
.pm-hbig { width: 54px; height: 40px; }
.pm-hname { font-size: min(22px, calc((100cqi - 70px) / 5.6)); }
.pm-hnow span { font-size: min(15px, calc((100cqi - 70px) / 11)); }
.pm-hpk { font-size: min(16px, calc(100cqi / 17)); }
.pm-htm b { font-size: min(17px, calc((100cqi - 50px) / 7)); }
.pm-htm span { font-size: min(14px, calc((100cqi - 50px) / 15)); }
.pm-htm i { font-size: min(15px, calc((100cqi - 50px) / 16)); }
/* ── 號角第二版：最快的升級方法（邀朋友）、號角獎勵卡的標籤、聊天框的小號角、跑馬燈的名字顏色 ── */
.pm-hfast { container-type: inline-size; border-color: #8b7bff; }
.pm-hf1 { font-size: min(20px, calc(100cqi / 13)); font-weight: 800; color: #fff1c2; white-space: nowrap; text-align: center; }
.pm-hf1 em, .pm-hf3 em { font-style: normal; color: #ffd54a; }
.pm-hf2 { font-size: min(15px, calc(100cqi / 17)); color: #b9ab8f; white-space: nowrap; text-align: center; }
.pm-hf3 { font-size: min(16px, calc(100cqi / 15)); color: #e8d9b5; white-space: nowrap; text-align: center; }
.pm-hfgo { white-space: nowrap; letter-spacing: 1px; }
.pm-hpk { display: flex; align-items: baseline; gap: 8px; font-size: min(16px, calc((100cqi - 8px) / 15)); }
.pm-hpk em { flex: none; min-width: 4.4em; font-style: normal; font-size: .82em; color: #e2b75a; }
.pm-hpk.got { opacity: .45; }
/* 聊天框：說話的人名字前面的小號角（hud.js chatHornNode；同 horn.js 的顏色） */
#lmui-lines .c-horn { display: inline-block; width: 1.35em; height: 1em; margin-right: 2px; vertical-align: -0.14em; }
/* 跑馬燈（enhbc.js parts.horn）：升上金號角＝金名、傳說＝粉金漸層名 */
#enh-broadcast .enh-bc-name.hn-bc4 { color: #ffd54a; }
#enh-broadcast .enh-bc-name.hn-bc5, #enh-broadcast.t1-big .enh-bc-name.hn-bc5 { background: linear-gradient(90deg, #ff7ad9, #ffe27a, #7de3ff); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; text-shadow: none; }
/* 全服進度條的禮物：條件一行、禮物一行，各自不斷行（字照螢幕寬縮） */
.pm-perk2 { flex-direction: column; align-items: flex-start; gap: 2px; }
.pm-perk2 b, .pm-perk2 span { white-space: nowrap; font-size: min(16px, calc((100vw - 76px) / 21)); }
/* 存著的禮物（promo.js rdHtml，站長 2026-11-09「不要寫 N 輪」「一行」）：左邊一顆一份、右邊一句；字照螢幕寬縮，一行不斷；兩種圖示 pm-rd-star／pm-rd-dot */
.pm-fit { container-type: inline-size; }
.pm-fit > .pm-perk { font-size: min(16px, calc((100cqi - 32px) / var(--k, 21))); }   /* --k＝這行幾個字寬（promo.js）；32＝框的左右內距＋邊 */
.pm-fit .pm-perk2 b, .pm-fit .pm-perk2 span { font-size: inherit; }
.pm-rd { flex-wrap: nowrap; white-space: nowrap; gap: .6em; }
.pm-rd .pm-rdt { min-width: 0; overflow: hidden; text-overflow: ellipsis; letter-spacing: .5px; }
.pm-rds { display: inline-flex; align-items: center; gap: .2em; flex: none; }
.pm-rdi { position: relative; display: block; width: var(--is, 1.15em); height: var(--is, 1.15em); flex: none; }
.pm-rdi::before { content: ""; position: absolute; inset: 0; }
.pm-rdx { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; margin: 0 .15em 0 .05em; }
.pm-rd-star .pm-rdi::before { clip-path: polygon(50% 2%, 62% 36%, 98% 37%, 69% 59%, 80% 95%, 50% 74%, 20% 95%, 31% 59%, 2% 37%, 38% 36%); background: linear-gradient(180deg, #57517f, #2e2a4a); }
.pm-rd-star .pm-rdi.on::before { background: linear-gradient(180deg, #fff6c2 0%, #ffd54a 45%, #d99a1e 100%); }
.pm-rd-star .pm-rdi.on { filter: drop-shadow(0 0 3px rgba(255,205,80,.75)); }
.pm-rd-star .pm-rdx { color: #ffe08a; text-shadow: 0 0 6px rgba(255,205,80,.5); }
.pm-rd-dot .pm-rdi::before { inset: .14em; border-radius: 50%; background: #221f38; box-shadow: inset 0 0 0 1px #5b5490, inset 0 2px 3px rgba(0,0,0,.6); }
.pm-rd-dot .pm-rdi.on::before { background: radial-gradient(circle at 35% 30%, #ffffff 0%, #e4e0ff 18%, #9d8fff 52%, #4b3bb0 100%); box-shadow: inset 0 0 0 1px rgba(216,212,255,.6); }
.pm-rd-dot .pm-rdi.on { filter: drop-shadow(0 0 3px rgba(139,123,255,.85)); }
.pm-rd-dot .pm-rdx { color: #d8d4ff; text-shadow: 0 0 6px rgba(139,123,255,.6); }
.pm-rdi.new { animation: pmRdOn 1.3s ease-out; }
@keyframes pmRdOn { 0% { transform: scale(.2) rotate(-40deg); opacity: 0; } 40% { transform: scale(1.5) rotate(10deg); opacity: 1; filter: brightness(1.9) drop-shadow(0 0 7px #fff); } 70% { transform: scale(.92); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .pm-rdi.new { animation: none; } }
/* 全服推廣的禮物一覽（promo.js giftHtml，站長 2026-11-09「這沒說要送什麼…讓玩家看得到東西」）：星星那行＋下面一樣一行「圖示 名字 ×累積（＋下一輪）」包成同一個框；
   每行字照框的內寬縮（--k），不斷行；欄寬 --cq（×累積）、--cp（下一輪）promo.js 照字算；下一輪那欄同暗的星星（正在集的那份）的紫色 */
.pm-gbox { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: .45em; }
.pm-gbox > .pm-fit > * { font-size: min(16px, calc(100cqi / var(--k, 21))); }
.pm-gbox .pm-rd { display: flex; align-items: center; justify-content: space-between; }
.pm-gt { white-space: nowrap; }
.pm-gfit { padding-top: .5em; border-top: 1px solid transparent; border-image: linear-gradient(90deg, rgba(167,139,250,0), rgba(167,139,250,.55), rgba(167,139,250,0)) 1; }
.pm-gl { display: flex; flex-direction: column; gap: .3em; }
.pm-gr { display: grid; grid-template-columns: 2em minmax(0, 1fr) var(--cq) var(--cp); align-items: center; column-gap: .5em; }
.pm-gr > :nth-child(4) { justify-self: center; }
.pm-ghr { margin-bottom: -.2em; }
.pm-ghr span { font-size: .72em; line-height: 1; color: #9d95d6; letter-spacing: 1px; white-space: nowrap; }
.pm-gi { width: 100%; margin: 0; padding: 0; font: inherit; color: inherit; text-align: left; white-space: nowrap; background: none; border: 0; }
button.pm-gi { cursor: pointer; }
button.pm-gi:active { opacity: .7; }
.pm-gic { display: flex; align-items: center; justify-content: center; width: 2em; height: 2em; box-sizing: border-box; border: 1px solid #8a6a32; border-radius: 6px;
  background: radial-gradient(circle at 50% 40%, #3a2f1f, #15110b 75%); box-shadow: inset 0 0 0 1px rgba(255,230,160,.10), 0 0 6px rgba(242,193,78,.18); }
.pm-gic img { width: 86%; height: 86%; object-fit: contain; }
.pm-gic img.ic35 { image-rendering: pixelated; }
.pm-gn { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: #f1ead9; }
.pm-gbox .pm-gq { justify-self: end; font-size: 1.15em; font-weight: 800; font-variant-numeric: tabular-nums; color: #ffe08a; text-shadow: 0 0 6px rgba(255,205,80,.5), 0 1px 0 #000; }
.pm-gp { font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; padding: 0 .45em; line-height: 1.45; border: 1px solid #5b5490; border-radius: 999px;
  background: linear-gradient(180deg, #3a3466, #221f3e); color: #d8d4ff; }
/* 今天集滿了（barDailyRounds）：條停在滿格、換成金色 */
.pm-bar.full i { background: linear-gradient(180deg, #fff3b0, #f2c14e 45%, #b8801c); box-shadow: 0 0 12px rgba(242,193,78,.6); }
/* 推廣視窗規則卡：一行講完的那條不斷行 */
.pm-rules li.pm-nw { white-space: nowrap; }
/* 分享成功特效（promo.js shareFx，站長 2026-11-09）：光暈＋光圈＋金幣、光點從按鈕炸開，「分享成功！」往上浮；只動 transform／opacity，1.9 秒後 JS 拿掉元素 */
.pm-fx { position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 100000; pointer-events: none; }
.pm-fx > * { position: absolute; display: block; opacity: 0; will-change: transform, opacity; }
.pm-fx-glow { width: 130px; height: 130px; margin: -65px 0 0 -65px; border-radius: 50%; background: radial-gradient(circle, rgba(255,232,150,.8) 0%, rgba(255,190,70,.38) 38%, rgba(255,190,70,0) 70%); animation: pmFxGlow .75s ease-out forwards; }
@keyframes pmFxGlow { 0% { opacity: 0; transform: scale(.3); } 25% { opacity: 1; } 100% { opacity: 0; transform: scale(1.8); } }
.pm-fx-ring { width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; border: 3px solid #ffe39a; box-shadow: 0 0 12px rgba(255,200,80,.9), inset 0 0 8px rgba(255,220,140,.7); animation: pmFxRing .7s cubic-bezier(.2,.7,.3,1) forwards; }
@keyframes pmFxRing { 0% { opacity: .95; transform: scale(.25); } 100% { opacity: 0; transform: scale(2.6); } }
.pm-fx-c { width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fffbe0 0 12%, #ffd75e 30%, #e2a72e 62%, #9a6614 100%); box-shadow: 0 0 0 1px #7a5310, 0 0 8px rgba(255,200,70,.85);
  animation: pmFxCoin 1s cubic-bezier(.12,.75,.3,1) forwards; }
.pm-fx-c::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; border: 1px solid rgba(122,83,16,.55); }
@keyframes pmFxCoin { 0% { opacity: 1; transform: translate(0, 0) scale(.35) rotateY(0deg); } 55% { opacity: 1; transform: translate(var(--dx), var(--dy)) scale(1) rotateY(var(--r)); }
  100% { opacity: 0; transform: translate(var(--dx), calc(var(--dy) + 34px)) scale(.75) rotateY(var(--r)); } }
.pm-fx-s { width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; background: #fff6d0; clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); animation: pmFxSpark .85s ease-out forwards; }
@keyframes pmFxSpark { 0% { opacity: 0; transform: translate(0, 0) scale(.2); } 20% { opacity: 1; } 60% { opacity: 1; transform: translate(var(--dx), var(--dy)) scale(1.2) rotate(45deg); } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(.2) rotate(90deg); } }
.pm-fx-t { overflow: hidden; white-space: nowrap; padding: 6px 18px; border: 1px solid #f2c14e; border-radius: 999px; background: linear-gradient(180deg, rgba(92,64,14,.96), rgba(30,20,6,.96)); color: #fff3c4;
  font: 900 22px/1.25 "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif; letter-spacing: 2px; text-shadow: 0 0 8px rgba(255,190,60,.9), 0 1px 0 #6b4a12; box-shadow: 0 0 18px rgba(242,193,78,.55), 0 4px 12px rgba(0,0,0,.5);
  transform: translate(-50%, -50%); animation: pmFxText 1.8s cubic-bezier(.2,.8,.3,1) forwards; }
.pm-fx-t::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: translateX(-150%); animation: pmFxShine .9s .25s ease-in-out forwards; }
@keyframes pmFxText { 0% { opacity: 0; transform: translate(-50%, -20%) scale(.6); } 14% { opacity: 1; transform: translate(-50%, -60%) scale(1.12); } 24% { opacity: 1; transform: translate(-50%, -60%) scale(1); }
  78% { opacity: 1; transform: translate(-50%, -85%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -115%) scale(.98); } }
@keyframes pmFxShine { to { transform: translateX(320%); } }
@media (prefers-reduced-motion: reduce) {
  .pm-fx-glow, .pm-fx-ring, .pm-fx-c, .pm-fx-s, .pm-fx-t::after { display: none; }
  .pm-fx-t { transform: translate(-50%, -50%); animation: pmFxFade 1.8s linear forwards; }
}
@keyframes pmFxFade { 0%, 82% { opacity: 1; } 100% { opacity: 0; } }
