/* 我的月老 會員介面設計層（v0.99，2026-11-05 全站）。head.php 最後載入，所以蓋得過 app-v2.css、app-v2-a／b／c.css 與 app-v2-legacy.css。
   語言比照官網：細線與留白分隔、襯線標題、拉丁斜體數字、方角。原則：
   - 陰影一律沒有（--shadow、--card-shadow 在 .app-body 歸零），只有浮在畫面上的東西才有 --p-float。卡片底用平色（--s-card 改 --l-bg-2）。
   - 區塊預設無框，只有重點區塊有框；每頁最多一處 .site-tone-night 深色重點，沒有明確主角就不放；放的容器要 color: var(--s-ink)。
   - 文字三階：標題 --s-ink（最深）、內文 --s-ink-2、備註 --p-note（最淡，對比仍 ≥4.5）。字級不為了「淡」而縮，內文維持 ≥16px。
   - 不新增色票、外部依賴、金線、菱形、光暈、漸層文字。人物卡保留拱門外形；頭像圓形。
   不要回頭在 app-v2-legacy.css 加規則；新元件的外觀規則寫在這裡。 */

/* 深色重點的底：金棕、墨綠是深段落原色；黑金的頁面底本身就是 --n-bg，要往上一階才分得出來 */
.app-body {
  --p-night: var(--n-bg); --p-note: color-mix(in srgb, var(--s-muted) 92%, var(--s-bg));
  --shadow: none; --card-shadow: none; --s-card: var(--l-bg-2);
  --p-float: 0 16px 40px -24px rgba(var(--a-shadow-rgb), .55);
}
.app-body .site-tone-light { --s-card: var(--l-bg-2); }
html[data-theme="dark"] .app-body { --p-note: color-mix(in srgb, var(--s-muted) 78%, var(--s-bg)); }
.app-body .site-tone-night { --p-note: color-mix(in srgb, var(--s-muted) 90%, var(--p-night)); --s-card: var(--p-night); color: var(--s-ink); }
html[data-theme="dark"] .app-body { --p-night: var(--n-bg-3); }

/* ========== 1. 區塊：預設無框，靠留白與細線分隔 ========== */
.app-body .app-section {
  --a-sec-pad: 0px;
  padding: 32px 0 0;
  border: 0; border-top: 1px solid var(--s-hair); border-radius: 0;
  background: none; box-shadow: none;
}
.app-body .app-section:first-child { padding-top: 0; border-top: 0; }
.app-body .app-section__title {
  margin: 0 0 12px;
  font-family: var(--serif-tc); font-size: clamp(21px, 1.8vw, 24px); font-weight: 600; letter-spacing: .1em; line-height: 1.5;
  color: var(--s-ink);
}
.app-body .app-section__head { align-items: center; margin: 0 0 8px; padding: 0; border: 0; }
.app-body .app-section__head .app-section__title { margin: 0; }
.app-body .app-a-sechead { align-items: center; }
.app-body .app-edit-btn { min-height: 48px; padding: 0 0 0 12px; border: 0; background: none; color: var(--s-accent); text-underline-offset: 4px; }
.app-body .app-edit-btn:hover { background: none; text-decoration: underline; }

/* 重點區塊才有框：官網 .site-block 的細線，無陰影 */
.app-body :is(.app-section.app-start, .app-section.app-line-prompt, .app-section.app-a-todos) {
  padding: clamp(20px, 2.4vw, 32px);
  border: 1px solid var(--s-hair);
  background: var(--s-bg-2);
}
/* 緊接在有框或深色區塊之後，不再多一條線 */
.app-body :is(.app-a-todos, .app-a-nextdate, .app-line-prompt, .app-start, .app-home__coins) + .app-section { padding-top: 0; border-top: 0; }

/* 空狀態與讀取失敗：同樣只留細線框，不要光暈、陰影與內框 */
.app-body .app-empty--card { border-radius: 0; background: var(--s-bg-2); box-shadow: none; }
.app-body .app-empty--card::before { display: none; }

/* 官網的英文小標：每頁只出現一次，放在深色重點內 */
.app-pol-en { margin: 0; font-family: var(--latin); font-style: italic; font-weight: 500; font-size: 20px; letter-spacing: .04em; line-height: 1.4; color: var(--s-accent); }

/* ========== 2. 深色重點（比照官網深段落）========== */
.app-body .site-tone-night { color: var(--s-ink); }
.app-body :is(.app-mecard.app-mecard--hub, .app-ov__card, .app-section.app-a-nextdate).site-tone-night,
.app-body .app-a-home__steps.site-tone-night,
.app-body .app-a-latest-tone > .app-a-latest {
  border: 1px solid var(--s-hair); border-radius: 0;
  background: var(--p-night); box-shadow: none;
}

/* ========== 3. 數字：拉丁斜體，單色，不用漸層 ========== */
.app-body :is(.app-home__steps strong, .app-home__ring-val, .app-home__coins strong, .app-a-complete__row strong, .app-mecard__progress strong, .app-ov__progress .app-fillcard__head span, .app-fillcard.site-tone-night .app-fillcard__head span, .app-c-ring__num, .app-a-dates__jump strong, .app-a-record__day strong, .app-c-summary__level strong, .app-rewards__balance) {
  font-synthesis: none; /* 「不限」這類中文不要被做成假斜體 */
  font-family: var(--latin); font-style: italic; font-weight: 600;
  font-variant-numeric: lining-nums tabular-nums; letter-spacing: 0; line-height: 1;
  color: var(--s-accent); padding-right: .08em;
}
.app-body :is(.app-mecard__bar, .app-fillcard__bar) { height: 2px; border-radius: 0; background: rgba(var(--a-ink-rgb), .14); }
.app-body :is(.app-mecard__bar, .app-fillcard__bar) > span { background: var(--s-accent); }

/* ========== 4. 備註與輔助文字：一律較淡，字級不縮 ========== */
.app-body :is(.app-me-note, .app-dd-note, .app-bigmenu p, .app-home__note, .app-home__empty, .app-home__ring-sub, .app-home__plan span, .app-home__brand, .app-a-links__main > span, .app-a-latest__main > span, .app-a-pair__main span, .app-start__count, .app-mecard__note, .app-ov__count, .app-ov__lack, .app-ov__meta, .app-ov__thumbstate:not(.is-bad), .app-ov__cat-pct, .app-ov__cat-missing, .app-brandcard__row dt, .app-home__feed span, .app-home__feed small, .app-a-recent__list time, .app-a-qr__when, .app-a-gallerygrid figcaption span, .app-ov__joins .app-check small, summary.app-menu-group small) {
  color: var(--p-note);
}
.app-body :is(.app-dd-note, .app-home__feed small, .app-a-recent__list time, .app-ov__thumbstate) { font-size: 16px; }

/* ========== 5. 會員中心 ========== */
.app-body .app-me__grid { gap: 32px; }
.app-body .app-mecard.app-mecard--hub { padding: 24px 20px; }
.app-body .app-mecard__avatar { border-color: var(--s-hair); background: var(--s-bg-2); }
.app-body .app-mecard__name { margin-top: 0; }
.app-body .app-mecard .app-status__badge { border: 0; padding: 0; background: none; }
.app-body a.app-mecard__progress { margin-top: 8px; color: var(--s-ink-2); }
.app-body .app-mecard__progress > span:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.app-body .app-mecard__progress strong { font-size: 40px; }
.app-body a.app-mecard__progress:hover strong { color: var(--s-ink); }
.app-body .app-mecard__next p { margin-bottom: 12px; }
@media (min-width: 1100px) {
  .app-body .app-mecard.app-mecard--hub { padding: 40px 28px 32px; }
  .app-body .app-mecard__avatar { width: 128px; height: 128px; }
  .app-body .app-pol-en { margin-top: 12px; }
  .app-body .app-mecard__progress > span:first-child { text-align: left; }
}

.app-body .app-brandcard { padding: 0; border: 0; border-radius: 0; background: none; }
.app-body .app-brandcard__row { padding-inline: 0; }
.app-body .app-brandcard__row dd { font-weight: 400; }

.app-body .app-me__main { gap: 40px; }
.app-body summary.app-menu-group,
.app-body details[open] > summary.app-menu-group {
  min-height: 56px; margin: 0; padding: 4px 0;
  border: 0; border-bottom: 1px solid var(--s-hair); border-radius: 0; background: none;
  font-size: clamp(20px, 1.6vw, 22px);
}
.app-body summary.app-menu-group::after { color: var(--s-muted); }
.app-body :is(.app-bigmenu, .app-bigmenu--grouped),
.app-body .app-menu-section .app-bigmenu { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.app-body .app-bigmenu svg { width: 24px; height: 24px; color: var(--s-muted); }
.app-body .app-bigmenu__arrow { color: var(--s-muted); }
.app-body .app-bigmenu a:hover :is(.app-bigmenu__arrow, svg) { color: var(--s-accent); }
@media (min-width: 1280px) {
  .app-body .app-menu-section .app-bigmenu { column-gap: 48px; }
}
.app-body .app-me-logout-menu { border-top: 1px solid var(--s-hair); }
.app-body .app-home-entry { border-radius: 0; background: none; }

/* ========== 6. 我的資料總覽 ========== */
.app-body .app-fm__main { gap: 40px; }
.app-body .app-fm__main > .app-section:first-child { padding-top: 0; border-top: 0; }
.app-body .app-ov__card { padding: 24px 20px; border-radius: 0; box-shadow: none; }
.app-body .app-ov__avatar { width: 76px; height: 76px; border-radius: 50%; border-color: var(--s-hair); }
.app-body .app-fillcard__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.app-body .app-fillcard__head span { color: var(--p-note); }
.app-body :is(.app-ov__progress, .app-fillcard.site-tone-night) .app-fillcard__head strong { font-family: var(--sans); font-size: 16px; font-weight: 400; letter-spacing: 0; color: var(--s-ink-2); }
.app-body :is(.app-ov__progress, .app-fillcard.site-tone-night) .app-fillcard__head span { font-size: 40px; color: var(--s-accent); }
.app-body .app-ov__progress .app-fillcard__bar { display: block; margin-top: 8px; }
.app-body .app-ov__count { margin-top: 12px; }

/* 右欄：摘要跟著頁面走，只有章節目錄黏住。原本整欄黏住再自己捲，一開頁深色摘要就被捲掉一半
   章節目錄：電腦版去框，只留一條線與目前位置 */
@media (min-width: 1280px) {
  .app-body .app-fm { grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; }
  .app-body .app-fm__rail { position: static; max-height: none; overflow: visible; gap: 32px; }
  .app-body .app-fm-toc { position: sticky; top: calc(var(--app-header-h) + 24px); max-height: calc(100dvh - var(--app-header-h) - 44px); overflow-y: auto; scrollbar-width: thin; padding: 0; border: 0; border-radius: 0; background: none; }
  .app-body .app-fm-toc ol { border-left: 1px solid var(--s-hair-soft); }
  .app-body .app-fm-toc a { margin-left: -1px; padding: 0 12px; border-left: 1px solid transparent; color: var(--s-ink-2); }
  .app-body .app-fm-toc a:hover { background: none; color: var(--s-accent); }
  .app-body .app-fm-toc a[aria-current] { border-left-color: var(--s-accent); background: none; color: var(--s-accent); }
}

/* 資料列：欄名淡、值深，圖示靠右對齊成一欄 */
.app-body .app-table > div { grid-template-columns: 112px minmax(0, 1fr); padding: 12px 0; align-items: start; }
.app-body .app-table dt { color: var(--s-muted); }
.app-body .app-ov__rows dd { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; font-size: 17px; line-height: 1.65; }
.app-body .app-ov__val { flex: 1; min-width: 0; }
.app-body .app-dd-note { margin-top: 2px; }
.app-body .app-ov__blank { color: var(--s-muted); font-size: 16px; }
@media (min-width: 640px) { .app-body .app-ov__rows { column-gap: 48px; } }
/* 有右欄但主欄還不夠寬時，雙欄會把值擠成兩三行 */
@media (min-width: 1280px) and (max-width: 1439px) { .app-body .app-ov__rows { grid-template-columns: minmax(0, 1fr); } }
.app-body .app-ov__thumbs img { border-color: var(--s-hair-soft); }
.app-body .app-ci__list--read { gap: 0; margin-top: 0; }
.app-body .app-ci__list--read .app-ci__item { padding: 12px 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }

/* ========== 7. 可見範圍小圖示（app_vis()，精靈與總覽共用）========== */
.app-vis { position: relative; display: inline-flex; flex: none; }
.app-vis__btn {
  position: relative; display: inline-grid; place-items: center;
  width: 48px; height: 48px; margin: -10px -10px -10px 0; padding: 0;
  border: 0; border-radius: var(--a-r); background: none; color: var(--s-muted); cursor: pointer;
  transition: color .2s, background-color .2s;
}
.app-vis__btn:hover, .app-vis.is-open .app-vis__btn { color: var(--s-accent); background: rgba(var(--a-gold-rgb), .1); }
.app-vis__btn:focus-visible { outline-offset: -2px; }
.app-vis__icon { display: block; flex: none; width: 18px; height: 18px; }
.app-vis__btn .app-vis__icon { translate: -3px 0; }
.app-vis__q { position: absolute; top: 9px; right: 7px; width: 13px; height: 13px; }
.app-vis__tip {
  position: absolute; z-index: 30; top: calc(100% + 14px); right: -6px;
  display: none; width: max-content; max-width: min(260px, calc(100vw - 48px)); padding: 8px 12px;
  border: 1px solid var(--s-line); border-radius: 0; background: var(--s-bg-2); color: var(--s-ink);
  font-size: 16px; font-weight: 400; letter-spacing: 0; line-height: 1.5; text-align: left; white-space: normal;
}
.app-vis.is-up .app-vis__tip { top: auto; bottom: calc(100% + 14px); }
.app-vis.is-start .app-vis__tip { right: auto; left: 0; }
.app-vis__tip small { display: block; margin-top: 2px; color: var(--p-note); font-size: 16px; }
.app-vis.is-open .app-vis__tip, html:not(.app-vis-ready) .app-vis__btn:focus-visible + .app-vis__tip { display: block; }
@media (hover: hover) { .app-vis:hover .app-vis__tip { display: block; } }
.app-vis.is-dismissed .app-vis__tip { display: none; }
/* 區塊有進場動畫時會自成一層，開著的說明要蓋過下一區塊 */
.app-section:has(.app-vis.is-open), .app-section:has(.app-vis__btn:focus-visible), .app-section:has(.app-vis:hover) { z-index: 2; }

.app-vis-legend { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 0; padding: 0; list-style: none; color: var(--s-muted); font-size: 16px; line-height: 1.6; }
.app-vis-legend li { display: inline-flex; align-items: center; gap: 8px; }

/* ========== 8. 首頁 ========== */
/* E50 最近互動：細線列，時間在上、事件在下（時間的顏色與字級在第 10 節備註清單） */
.app-body .app-a-recent__list { margin: 0; padding: 0; list-style: none; }
.app-body .app-a-recent__list li + li { border-top: 1px solid var(--s-hair-soft); }
.app-body .app-a-recent__list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; align-items: center; min-height: 48px; padding: 10px 0; color: var(--s-ink); text-decoration: none; }
.app-body .app-a-recent__list time, .app-body .app-a-recent__text { grid-column: 1; }
.app-body .app-a-recent__text { font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.app-body .app-a-recent__list .app-bigmenu__arrow { grid-column: 2; grid-row: 1 / span 2; color: var(--p-note); font-size: 22px; }
.app-body .app-a-recent__list a:hover .app-a-recent__text { color: var(--s-accent); }
.app-body .app-a-home { gap: 40px; }
.app-body .app-a-home__cols { gap: 40px; }
.app-body :is(.app-a-home__left, .app-a-home__right) { gap: 40px; }
.app-body .app-a-home__left > .app-section:first-child { padding-top: 0; border-top: 0; }
.app-body .app-a-home__left > .app-a-todos:first-child { padding-top: clamp(20px, 2.4vw, 32px); border-top: 1px solid var(--s-hair); }
.app-body .app-a-home__left > .app-a-nextdate:first-child { border-top: 1px solid var(--s-hair); }
@media (min-width: 1180px) {
  .app-body .app-a-home__cols { grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; }
  .app-body .app-a-home__right > .app-section:first-child { padding-top: 0; border-top: 0; }
}

/* 問候與狀態：狀態改文字加細線分隔，不再是一排小框 */
.app-body .app-home__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0; }
.app-body .app-home__tags .app-status__badge { padding: 0; border: 0; background: none; color: var(--s-accent); line-height: 1.5; }
.app-body .app-home__tags > :not(:first-child) { padding-left: 12px; border-left: 1px solid var(--s-hair); }
.app-body .app-a-complete { margin-top: 12px; }
.app-body .app-a-complete__row { align-items: baseline; margin-bottom: 8px; color: var(--s-ink-2); }
.app-body .app-a-complete__row strong { font-size: 36px; }
.app-body .app-a-complete .app-fillcard__bar { height: 2px; }
.app-body .app-a-complete .app-bigmenu__arrow { color: var(--s-muted); }

/* 最新名單入口 */
.app-body .app-a-latest { padding: 16px 20px; border: 1px solid var(--s-hair); border-radius: 0; background: none; box-shadow: none; }
.app-body .app-a-latest:hover { background: rgba(var(--a-gold-rgb), .08); }
.app-body .app-a-latest-tone > .app-a-latest:hover { background: var(--p-night); border-color: var(--s-line); }
.app-body .app-a-latest__icon { width: 28px; height: 28px; border: 0; background: none; color: var(--s-accent); }

/* 媒合進度：官網 .site-stats 的比例，上下細線、欄間細線 */
.app-body .app-home__steps { gap: 0; border: 0; border-block: 1px solid var(--s-hair); border-radius: 0; background: none; box-shadow: none; }
.app-body .app-home__steps li + li { border-left: 1px solid var(--s-hair-soft); }
.app-body .app-home__steps a { min-height: 112px; padding: 16px 4px; }
.app-body .app-home__steps a:hover { background: none; }
.app-body .app-home__steps a:hover strong { color: var(--s-ink); }
.app-body .app-home__steps strong { font-size: clamp(44px, 4vw, 56px); }
.app-body .app-home__steps span { margin-top: 8px; font-family: var(--serif-tc); letter-spacing: .06em; color: var(--s-ink-2); }
.app-body .app-a-home__steps.site-tone-night .app-home__steps { border: 0; }

/* 待辦 */
.app-body .app-home__count { background: none; color: var(--s-muted); font-size: 16px; }
.app-body .app-home__todo--urgent .app-home__count { background: var(--red); color: var(--a-on-red); font-size: 15px; }
.app-body .app-home__todo .app-bigmenu__arrow { color: var(--s-muted); }

/* 下一次約會：這一頁的主角 */
.app-body .app-section.app-a-nextdate { padding: clamp(24px, 2.8vw, 36px); }
.app-body .app-a-nextdate .app-section__title { margin-bottom: 16px; }
.app-body .app-home__avatar { width: 96px; height: 96px; border-radius: 50%; border-color: var(--s-hair); }
.app-body .app-a-nextdate .app-home__date-main > span { color: var(--s-ink-2); }
.app-body .app-a-nextdate .app-status__badge { margin-top: 4px; padding: 2px 12px; }
.app-body .app-a-nextdate .app-bigmenu__arrow { color: var(--s-accent); }

/* 約會進度：細線步驟條 */
.app-body .app-a-track__step::before { top: 5px; height: 1px; background: var(--s-hair); }
.app-body .app-a-track__step.is-done::before, .app-body .app-a-track__step.is-now::before { background: var(--s-accent); }
.app-body .app-a-track__dot { width: 11px; height: 11px; border-width: 1px; border-color: var(--s-line); background: var(--s-bg); }
.app-body .app-a-track__step { color: var(--s-muted); }

/* 配對對象：狀態改文字 */
.app-body .app-a-pair .app-tag { padding: 0; border: 0; background: none; color: var(--s-accent); font-size: 16px; }
.app-body .app-a-pair .app-tag--off { color: var(--s-muted); }

/* 專屬顧問 */
.app-body .app-a-consultant__msg { padding: 2px 0 2px 16px; border-left: 1px solid var(--s-line); background: none; }

/* 入場 QR：與其他區塊同樣靠左 */
.app-body .app-a-qr { text-align: left; }
.app-body .app-a-qr .app-section__title { text-align: left; }
.app-body .app-a-qr__img { margin: 0; }
.app-body .app-a-qr__done { margin-left: 0; }

/* 方案額度：環形圖換成數字＋說明 */
.app-body .app-home__rings { gap: 24px 16px; }
.app-body .app-home__ring-item { justify-items: start; gap: 2px; text-align: left; }
.app-body .app-home__ring { display: block; width: auto; height: auto; border-radius: 0; background: none; }
.app-body .app-home__ring::before { display: none; }
.app-body .app-home__ring-val { position: static; font-size: 44px; }
.app-body .app-home__ring-label { margin-top: 4px; font-family: var(--serif-tc); letter-spacing: .06em; }

/* 緣分幣：一列，上下細線 */
.app-body .app-home__coins { min-height: 72px; padding: 12px 0; border: 0; border-block: 1px solid var(--s-hair); border-radius: 0; background: none; box-shadow: none; }
.app-body .app-home__coins strong { font-size: 36px; }
.app-body .app-home__coins .app-home__ico { color: var(--s-muted); margin-top: 0; }

/* 列表箭頭與小圖示都退到輔助色，hover 才帶色 */
.app-body .app-a-links .app-bigmenu__arrow { color: var(--s-muted); }
.app-body .app-a-links .app-tag { padding: 0; border: 0; background: none; color: var(--s-accent); font-size: 16px; font-weight: 400; }
.app-body .app-home__shortcut svg { color: var(--s-muted); }
.app-body .app-home__shortcut a:hover svg { color: var(--s-accent); }

/* 最新動態：未讀只留左線，不鋪底色 */
.app-body .app-home__feed a { padding-inline: 12px 0; }
.app-body .app-home__feed a.is-unread { background: none; }

@media (prefers-reduced-motion: reduce) {
  .app-vis__btn { transition: none; }
}

/* 選單：標題與說明拉開深淺，說明退到背景（2026-11-05 負責人回饋：整片都是字） */
.app-body .app-bigmenu strong { font-size: 19px; font-weight: 600; color: var(--s-ink); }
.app-body .app-bigmenu p { margin-top: 4px; line-height: 1.5; color: var(--p-note); }
.app-body .app-bigmenu svg { color: var(--p-note); }

/* ========== 9. 浮在畫面上的東西才有陰影 ========== */
.app-body :is(.app-bell__panel, .app-theme__panel, .app-confirm, .app-sheet__panel, .app-toast, .app-dialog) { box-shadow: var(--p-float); }

/* ========== 10. 文字三階 ========== */
.app-body :is(.app-note, .app-hint, .app-lead, .app-form__lead, .app-mc__lead, .app-mc__meta, .app-mc__notes, .app-services__lead, .app-services__meta, .app-match__lead, .app-issues__lead, .app-issues__meta, .app-issues__note, .app-voice__lead, .app-a-search__lead, .app-c-contact__lead, .app-c-addons__sub, .app-c-level__note, .app-c-ring__sub, .app-consult-hero__note, .app-series-list__note, .app-sheet__note, .app-actionbar__note, .app-pagehead__meta, .app-card__meta, .app-card__info, .app-mcard__meta, .app-mhero__meta, .app-msg__meta, .app-order__meta, .app-events__sub, .app-events__time, .app-evt__when, .app-evt__info, .app-evt-benefit__hint, .app-sr-note, .app-dt-note, .app-ci__note, .app-wz-field__hint, .app-wz-consent__note, .app-a-record__note, .app-a-left, .app-mc__visname small, .app-profile-more__text, .app-fillcard__more, .app-tips li):not(.app-note--ok) { color: var(--p-note); }
/* 小標與卡內標題回到最深 */
.app-body .app-fm__sub { color: var(--s-ink); }
/* 內文維持次深：表格的值與段落不要被上面的備註規則帶淡 */
.app-body .app-intro { color: var(--s-ink); }
.app-body :is(.app-note--ok) { color: var(--s-accent); }

/* ========== 11. 編輯表單的黏底列：區塊已無內距，貼齊內容欄即可 ========== */
.app-body .app-form-actions, .app-body .app-c-savebar { background: var(--s-bg); box-shadow: none; border-top: 1px solid var(--s-hair); }
.app-body .app-form-actions { margin-inline: 0; padding-inline: 0; }
.app-body .app-c-savebar { margin-inline: 0; padding-inline: 0; }
html[data-theme="dark"] .app-body :is(.app-form-actions, .app-c-savebar) { background: var(--n-bg); }

/* ========== 12. 深色重點的通用外觀（各頁只放一處，清單見 md/APP_V2_COMPONENTS.md）========== */
.app-body .site-tone-night:not(.app-a-latest-tone) { border: 1px solid var(--s-hair); border-radius: 0; background: var(--p-night); box-shadow: none; }
.app-body .app-section.site-tone-night { --a-sec-pad: clamp(20px, 2.4vw, 32px); padding: var(--a-sec-pad); border: 1px solid var(--s-hair); }
.app-body .app-mhero.site-tone-night { padding: clamp(20px, 2.4vw, 32px); }
.app-body .app-mcard.site-tone-night { padding: clamp(20px, 2.4vw, 28px); }
.app-body .app-status.site-tone-night { padding: clamp(20px, 2.4vw, 28px); }

/* ========== 13. 列表去框：朋友、約會紀錄、公告、聯絡方式，一列一條細線 ========== */
.app-body .app-a-friendgrid { row-gap: 0; }
.app-body .app-a-friendgrid .app-friend { padding: 16px 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }
.app-body .app-a-friendgrid .app-friend:hover { background: none; }
@media (min-width: 900px) { .app-body .app-a-friendgrid { column-gap: 48px; } }
.app-body .app-a-records { gap: 0; }
.app-body .app-a-record { padding-inline: 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }
.app-body .app-a-record--cancelled { background: none; }
.app-body .app-a-record__day { color: var(--p-note); }
.app-body .app-a-record__day strong { font-size: 40px; line-height: 1.1; }
.app-body .app-a-dates__jump { border: 0; border-block: 1px solid var(--s-hair); border-radius: 0; background: none; }
.app-body .app-a-dates__jump a { min-height: 104px; color: var(--s-ink-2); font-family: var(--serif-tc); letter-spacing: .06em; }
.app-body .app-a-dates__jump a:hover { background: none; }
.app-body .app-a-dates__jump strong { margin-bottom: 4px; font-size: clamp(40px, 3.6vw, 52px); }
.app-body .app-a-rules { padding: 0; border: 0; background: none; }
.app-body .app-c-reading .app-mc__notice { padding: 8px 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }
.app-body .app-mc__contact-row { border: 0; border-bottom: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }
.app-body .app-mc__faqnav { padding: 0; border: 0; border-radius: 0; background: none; }

/* 約會卡、人物卡：留細線與拱門外形，不加底色以外的東西；滑過只動一點點 */
.app-body .app-datecard { border-color: var(--s-hair); }
@media (hover: hover) { .app-body a.app-card:hover { translate: 0 -2px; border-color: var(--s-hair); } }

/* 隱形 MATCH 入口與底色方塊：改細線 */
.app-body .app-mgo { border: 1px solid var(--s-hair-soft); border-radius: 0; background: none; }
.app-body .app-mgo:hover { border-color: var(--s-line); background: none; }

/* 權益次數：環形圖換成數字，比照首頁方案額度 */
.app-body .app-c-rings { gap: 24px 16px; }
.app-body .app-c-ring { justify-items: start; gap: 2px; text-align: left; }
.app-body .app-c-ring__chart { display: block; width: auto; height: auto; margin: 0; }
.app-body .app-c-ring__chart svg { display: none; }
.app-body .app-c-ring__num { font-size: 44px; color: var(--s-accent); }
.app-body .app-c-summary__level strong { font-size: 44px; }
.app-body .app-c-summary__level.is-text strong { font-size: 28px; }

/* ========== 14. 「誰看得到」：功能不動，但不要重複成一片 ==========
   文字留給輔助科技（下拉本身也有 aria-label），畫面上收掉；下拉退到備註色，固定值改小圖示＋問號。 */
.app-body .app-wz-vis > span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.app-body .app-form .app-wz-vis select { width: auto; max-width: 100%; background-color: transparent; color: var(--p-note); }
.app-body .app-form .app-wz-vis { justify-items: end; }
.app-body .app-wz-vis--fixed { display: flex; justify-content: flex-end; min-height: 48px; align-items: center; }
.app-body .app-wz-vis--fixed .app-vis__btn { margin-block: 0; }
.app-body .app-mc__visfixed { display: flex; justify-content: flex-end; align-items: center; min-height: 48px; }
.app-body .app-mc__visfixed .app-vis__btn { margin-block: 0; }

/* 公告標題：標題最深；未讀靠「未讀」標籤與字重，不靠金色 */
.app-body .app-mc__notice summary strong { font-family: var(--serif-tc); font-size: 18px; font-weight: 500; letter-spacing: .04em; color: var(--s-ink); }
.app-body .app-c-reading .app-mc__notice.is-unread summary strong { font-weight: 600; color: var(--s-ink); }

/* ========== 15. 審核修正（2026-11-05）========== */
/* 提示下一步是內文，不是備註 */
.app-body :is(.app-mecard__next p, .app-start__text) { color: var(--s-ink-2); }
/* 中文數字（不限）小一級，才不會比數字還搶眼 */
.app-body :is(.app-c-ring__num, .app-home__ring-val).is-text { font-size: 26px; line-height: 44px; font-weight: 500; }
/* 第 3 節 :is() 的 line-height 特異度是 0,4,1；這裡用固定高度對齊，數字與中文同高、靠底，同列標籤才對得齊 */
.app-body .app-c-rings .app-c-ring .app-c-ring__num { display: flex; align-items: flex-end; height: 48px; }
.app-body .app-c-rings .app-c-ring .app-c-ring__num.is-text { font-weight: 500; }
/* 區塊最後一列不畫底線，否則會和下一區的頂線連成兩條 */
.app-body :is(.app-rewards__gift, .app-rewards__task, .app-services__ledger):last-child { border-bottom: 0; }
.app-body .app-c-summary .app-btn { margin-top: 16px; }

/* 備註靠左；綜合契合度是刻意置中的主視覺 */
.app-body .app-note { text-align: left; }
.app-body .app-mtotal .app-note { text-align: center; }

/* 左側色條（提示框）全部拿掉，改細線列或字重 */
.app-body .app-mfriction { gap: 0; }
.app-body .app-mfriction li { padding: 12px 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); background: none; }
.app-body .app-mfriction li:last-child { border-bottom: 0; }
.app-body .app-mfriction strong { color: var(--a-danger); }
.app-body .app-home__feed a { padding-inline: 0; border-left: 0; }
.app-body .app-home__feed a.is-unread { background: none; }
.app-body .app-home__feed strong { font-weight: 500; }
.app-body .app-home__feed a.is-unread strong { font-weight: 600; }
.app-body .app-home__feed a.is-unread strong::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--s-accent); vertical-align: .12em; }
.app-body .app-a-consultant__msg { padding: 12px 0; border: 0; border-block: 1px solid var(--s-hair-soft); }
.app-body .app-feedback__received { padding: 12px 0; border: 0; border-block: 1px solid var(--s-hair-soft); background: none; }
.app-body .app-wz-status { padding: 8px 0; border: 0; border-block: 1px solid var(--s-hair-soft); background: none; }
.app-body .app-wz-status--warn { border-block-color: var(--a-danger); }
.app-body .app-voice__reading { padding: 12px 0; border: 0; border-block: 1px solid var(--s-hair-soft); background: none; }

/* 不要連續兩條線：區塊最後一列不畫底線，深色區塊後的區塊不畫頂線 */
.app-body .site-tone-night + .app-section { padding-top: 0; border-top: 0; }
.app-body .app-table > div:last-child,
.app-body .app-mlist__row:last-child,
.app-body .app-c-summary__list > div:last-child { border-bottom: 0; }
@media (min-width: 640px) {
  .app-body .app-table--cols > div:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
}
@media (min-width: 640px) and (max-width: 1279px), (min-width: 1440px) {
  .app-body .app-ov__rows > div:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
}
.app-body .app-mtodo li:last-child > a { border-bottom: 0; }

/* 權益數字：拿掉格線框，改細線列（原本內距被 .app-table > div 蓋掉，文字貼框） */
.app-body .app-svc-stats { column-gap: 32px; border: 0; }
.app-body .app-services__card .app-svc-stats > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--s-hair-soft); }
.app-body .app-svc-stats > div:nth-last-child(-n + 2) { border-bottom: 0; }
.app-body .app-services__card .app-svc-stats > div:nth-last-child(-n + 2) { border-bottom: 0; }

/* 獎勵頁層級：欄標題＞欄內小節 */
.app-body .app-svc-col > h2.app-menu-group { margin: 0; padding: 0 0 12px; border-bottom: 1px solid var(--s-hair); font-size: clamp(21px, 1.8vw, 24px); }
.app-body .app-svc-col > h2.app-menu-group + .app-section { padding-top: 16px; border-top: 0; }
.app-body .app-svc-cols--even .app-section__title { font-size: 19px; }

/* 公告：標題靠左，比照 FAQ 的＋／－ */
.app-body .app-mc__item-head { justify-content: flex-start; }
.app-body .app-mc__notice > summary { position: relative; padding-right: 32px; cursor: pointer; list-style: none; }
.app-body .app-mc__notice > summary::-webkit-details-marker { display: none; }
.app-body .app-mc__notice > summary::after { content: "＋"; position: absolute; top: 50%; right: 0; translate: 0 -50%; color: var(--s-accent); font-size: 18px; line-height: 1; }
.app-body .app-mc__notice[open] > summary::after { content: "－"; }

/* 搜尋結果：看得出能點 */
.app-body .app-a-resultlist a { grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; }
.app-body .app-a-resultlist .app-bigmenu__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; color: var(--p-note); font-size: 22px; }
.app-body .app-a-resultlist strong, .app-body .app-a-resultlist a > span:not(.app-bigmenu__arrow) { grid-column: 1; }
.app-body .app-a-resultlist a:hover .app-bigmenu__arrow { color: var(--s-accent); }

/* 隱形 MATCH 兩段之間 */
.app-body .app-a-match__cols { row-gap: 40px; }
.app-body .app-a-match__col { gap: 40px; }
@media (min-width: 900px) { .app-body .app-a-match__cols { column-gap: 48px; } }

/* 今晚來時段格 */
.app-body .app-mslots .app-check { padding: 10px; white-space: nowrap; }
.app-body .app-mslots__day { background: none; }

/* 圖例 */
.app-body .app-mc__modes li > .app-vis__icon { display: inline-block; margin-right: 6px; vertical-align: -.2em; color: var(--p-note); }
.app-body .app-section > .app-vis-legend { margin-bottom: 4px; }

/* 搜尋結果雙欄：右欄第一區與左欄對齊，不多一條頂線 */
@media (min-width: 1180px) { .app-body .app-a-results > .app-section:nth-child(2) { padding-top: 0; border-top: 0; } }

/* 綜合契合度：和其他數字同一種字；「資料還不夠計算」是中文，不用斜體 */
.app-body .app-mtotal__value { font-family: var(--latin); font-style: italic; font-weight: 600; font-synthesis: none; font-variant-numeric: lining-nums tabular-nums; line-height: 1.1; }
.app-body .app-mtotal__value small { font-size: 26px; }
.app-body .app-mtotal__none { font-family: var(--sans); font-style: normal; font-size: 18px; font-weight: 400; }

/* d53／d54（2026-11-05）：發起約會的地點說明、刪除帳號前輸入密碼 */
.app-body .app-sheet__hint { margin: 0; color: var(--p-note); font-size: 16px; line-height: 1.7; }
.app-body .app-danger__password { margin: 0 0 14px; }
.app-body .app-danger__password .app-auth-password-toggle { margin-top: 8px; }
.app-body .app-danger .app-btn--line { margin-bottom: 4px; text-decoration: none; }

/* 活動報名的方案權益（2026-11-05）：單選列 48px 點擊區、說明 16px，只用既有 tokens */
.app-body .app-evt-benefit { margin: 0; padding: 0; border: 0; }
.app-body .app-evt-benefit legend { padding: 0; margin-bottom: 4px; color: var(--s-ink); font-size: 16px; font-weight: 600; }
.app-body .app-form label.app-evt-benefit__opt { display: flex; align-items: flex-start; gap: 12px; min-height: 48px; margin: 0; padding: 12px 0; border-top: 1px solid var(--s-hair); color: var(--s-ink); font-size: 16px; line-height: 1.6; cursor: pointer; }
.app-body .app-evt-benefit__opt input { flex: 0 0 auto; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--s-accent); }
.app-body .app-evt-benefit__text { display: grid; gap: 2px; min-width: 0; }
.app-body .app-evt-benefit__hint { font-size: 16px; line-height: 1.7; }
.app-body .app-evt-benefit__due { margin: 0; color: var(--s-ink); font-size: 16px; font-weight: 600; }
.app-body .app-form label[hidden] { display: none; }

/* 後台模擬登入會員的提示列（2026-11-08 測試用，pages/app/_partials/header.php）：全寬、置頂，結束按鈕夠大 */
.app-body .app-imp-bar { margin: 0; border-width: 0 0 1px; border-radius: 0; padding: 10px var(--a-page-x); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; position: relative; z-index: 60; }
.app-body .app-imp-bar__stop { display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px; border: 1px solid currentColor; border-radius: var(--a-r); color: var(--s-ink); font-weight: 600; text-decoration: none; }

