/* 友善閱讀共用樣式 v1：外觀、文字、行為比照 TERA。各站可覆寫 --fm-* 變數配合品牌色。 */
:root { --fm-ink: #0b4a6b; --fm-card: #fff; --fm-line: #c9d4da; --fm-muted: #4a5a63; --fm-chip: #eef4f7; --fm-focus: #b3360a; --fm-font: system-ui, -apple-system, "Segoe UI", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif; }
[data-theme=dark], .dark { --fm-ink: #e8f1f5; --fm-card: #10212c; --fm-line: #49606e; --fm-muted: #b9c8d0; --fm-chip: #1a3140; --fm-focus: #ffb492; }
.fm-root .friendly-toggle { min-width: 44px; height: 44px; padding: 0 16px; border: 2px solid var(--fm-ink); border-radius: 22px; background: var(--fm-card); color: var(--fm-ink); font: 700 15px/1 var(--fm-font); letter-spacing: .04em; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; box-shadow: 0 6px 18px -8px rgba(0,0,0,.45); }
.fm-root .friendly-toggle:hover { background: var(--fm-chip); }
.fm-root .friendly-toggle.is-active, .fm-root .friendly-toggle[aria-expanded="true"] { background: var(--fm-ink); color: var(--fm-card); }
.fm-root .friendly-short { display: none; }
.fm-float { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 2147483000; }
.fm-root .reading-panel { position: fixed; right: 16px; bottom: calc(72px + env(safe-area-inset-bottom, 0px)); z-index: 2147483001; width: 400px; max-width: calc(100vw - 24px); box-sizing: border-box; padding: 18px; border: 2px solid var(--fm-ink); border-radius: 16px; background: var(--fm-card); color: var(--fm-ink); box-shadow: 0 18px 40px -18px rgba(0,0,0,.45); display: grid; gap: 14px; max-height: calc(100vh - 110px); overflow: auto; font-family: var(--fm-font); text-align: left; zoom: 1 !important; }
.fm-root .reading-panel[hidden] { display: none; }
.fm-root .reading-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fm-root .reading-head h2 { margin: 0; font: 700 20px/1.4 var(--fm-font); color: var(--fm-ink); }
.fm-root .reading-close { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--fm-line); border-radius: 50%; background: var(--fm-card); color: var(--fm-ink); font-size: 18px; line-height: 1; cursor: pointer; }
.fm-root .reading-note { margin: 0; font-size: 14px; line-height: 1.7; color: var(--fm-muted); }
.fm-root .reading-row { display: grid; gap: 8px; }
.fm-root .reading-label { font-weight: 700; font-size: 16px; line-height: 1.4; }
.fm-root .reading-opts, .fm-root .reading-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fm-root .reading-opts button, .fm-root .reading-actions button { min-height: 44px; padding: 0 16px; border: 2px solid var(--fm-line); border-radius: 12px; background: var(--fm-card); color: var(--fm-ink); font: 600 16px/1 var(--fm-font); cursor: pointer; }
.fm-root .reading-opts button:hover, .fm-root .reading-actions button:hover { border-color: var(--fm-ink); }
.fm-root .reading-opts button[aria-pressed="true"] { border-color: var(--fm-ink); background: var(--fm-ink); color: var(--fm-card); }
.fm-root .reading-actions { padding-top: 14px; border-top: 1px solid var(--fm-line); }
.fm-root .reading-actions [data-reading-preset] { border-color: var(--fm-ink); font-weight: 700; }
.fm-root button:focus-visible { outline: 3px solid var(--fm-focus); outline-offset: 3px; }
@media (max-width: 600px) {
  .fm-root .friendly-toggle { padding: 0 12px; font-size: 14px; letter-spacing: 0; }
  .fm-root .friendly-long { display: none; } .fm-root .friendly-short { display: inline; }
  .fm-root .reading-panel { left: 12px; right: 12px; width: auto; max-width: none; max-height: calc(100vh - 100px); }
}
@media print { .fm-root { display: none !important; } }

/* 文字大小（比照 TERA：放大 main 與 footer，頁首不放大；窄螢幕幅度較小） */
[data-rd-size="1"] main, [data-rd-size="1"] footer, [data-rd-size="1"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.1; }
[data-rd-size="2"] main, [data-rd-size="2"] footer, [data-rd-size="2"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.2; }
[data-rd-size="3"] main, [data-rd-size="3"] footer, [data-rd-size="3"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.35; }
@media (max-width: 600px) {
  [data-rd-size="1"] main, [data-rd-size="1"] footer, [data-rd-size="1"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.08; }
  [data-rd-size="2"] main, [data-rd-size="2"] footer, [data-rd-size="2"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.18; }
  [data-rd-size="3"] main, [data-rd-size="3"] footer, [data-rd-size="3"].fm-nomain body > :not(.fm-root):not(header) { zoom: 1.3; }
}
/* 高對比（通用版：文字加深、邊線加粗、焦點框加強；各站可另覆寫自己的色票變數） */
[data-rd-contrast] body :not(.fm-root):not(.fm-root *):is(p, li, dd, dt, td, th, span, label, small, h1, h2, h3, h4, h5, h6) { color: #000 !important; }
[data-rd-contrast][data-theme=dark] body :not(.fm-root):not(.fm-root *):is(p, li, dd, dt, td, th, span, label, small, h1, h2, h3, h4, h5, h6),
[data-rd-contrast].dark body :not(.fm-root):not(.fm-root *):is(p, li, dd, dt, td, th, span, label, small, h1, h2, h3, h4, h5, h6) { color: #fff !important; }
[data-rd-contrast] body a:not(.fm-root *) { color: #00338a !important; }
[data-rd-contrast][data-theme=dark] body a:not(.fm-root *), [data-rd-contrast].dark body a:not(.fm-root *) { color: #9fd0ff !important; }
[data-rd-contrast] :focus-visible { outline: 4px solid var(--fm-focus) !important; outline-offset: 4px; }
[data-rd-contrast] { --fm-line: #6f8794; }
/* 行距與字距 */
[data-rd-spacing] main p, [data-rd-spacing] main li, [data-rd-spacing] main dd, [data-rd-spacing] main summary, [data-rd-spacing] footer p, [data-rd-spacing] footer li,
[data-rd-spacing].fm-nomain body p:not(.fm-root *), [data-rd-spacing].fm-nomain body li { line-height: 2.2; letter-spacing: .06em; }
/* 連結底線 */
[data-rd-underline] main p a, [data-rd-underline] main li a, [data-rd-underline] footer a, [data-rd-underline].fm-nomain body p a, [data-rd-underline].fm-nomain body li a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; }
/* 字體加粗 */
[data-rd-bold] body, [data-rd-bold] main p, [data-rd-bold] main li, [data-rd-bold] main dd, [data-rd-bold] footer p { font-weight: 600; }
/* 減少動畫 */
[data-rd-motion] *, [data-rd-motion] *::before, [data-rd-motion] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
