/* ===== 风水形音输入法 · 自定义样式 ===== */

/* --- 自创字符字体（PUA 区）---
   教程中 76 个自创 PUA 字符全部存在于 EUDC.ttf（用户自有版权）。
   unicode-range 让浏览器仅对 PUA 区(U+E000–F8FF) 调用此字体，
   普通汉字走系统字体回退，互不影响。
   Markdown 正文直接写 PUA 字符即可，无需 <span> 包裹。 */
@font-face {
  font-family: 'FengshuiEUDC';
  src: url('../fonts/EUDC.ttf') format('truetype');
  font-display: swap;
  unicode-range: U+E000-F8FF;
}

/* 正文 CJK 字体回退链：普通汉字用系统宋体/思源，PUA 字符用 EUDC */
body {
  font-family: 'Noto Serif CJK SC', 'Source Han Serif SC', 'Songti SC',
               'SimSun', serif, 'FengshuiEUDC', sans-serif;
}

/* --- 各语言字体优化（系统字体栈，零外部依赖；不影响中文默认）---
   根因：SimSun 自带西里尔字母块，俄语被其渲染导致字距过宽；法语等带调拉丁字母
   走 CJK 字体内置拉丁字形不够美观。由 head_custom.html 按语言路径注入 <html lang>，
   在此用 :lang() 精准切换。每条栈末尾保留 'FengshuiEUDC' 以渲染 PUA 自创字根。 */
/* 俄语：西里尔——交给标准衬线，避开 SimSun 的西里尔 */
:lang(ru) body {
  font-family: 'Times New Roman', 'Georgia', 'Cambria', 'PT Serif', serif, 'FengshuiEUDC';
}
/* 拉丁语系：法/西/德/英/越——Georgia 对带调字母支持好 */
:lang(en) body, :lang(fr) body, :lang(es) body, :lang(de) body, :lang(vi) body {
  font-family: 'Georgia', 'Times New Roman', 'Cambria', serif, 'FengshuiEUDC';
}
/* 日语 */
:lang(ja) body {
  font-family: 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN', 'Noto Serif CJK SC', serif, 'FengshuiEUDC';
}
/* 韩语 */
:lang(ko) body {
  font-family: 'AppleMyungjo', 'Batang', 'Noto Serif KR', 'Noto Serif CJK SC', serif, 'FengshuiEUDC';
}
/* 阿拉伯语 */
:lang(ar) body {
  font-family: 'Amiri', 'Traditional Arabic', 'Noto Naskh Arabic', 'Scheherazade', serif, 'FengshuiEUDC';
}

/* 配色变量（取自 LaTeX 文档类 fengshui.cls）*/
:root {
  --fengshui-blue: #003399; /* 蓝，主色 */
  --fengshui-gray: #808080; /* 灰 */
  --fengshui-red:  #dc143c; /* 红，强调 */
}

/* 强调色（如 Slogan 中的"风""水"）*/
.fs-red { color: var(--fengshui-red); }

/* 复杂大表横向滚动，适配移动端 */
.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* 字根表统一基础样式 */
table.fs-table {
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 0.95em;
}
table.fs-table th,
table.fs-table td {
  border: 1px solid #ccc;
  padding: 0.4em 0.6em;
  vertical-align: top;
}
table.fs-table th {
  background: #f0f4fa;
  color: var(--fengshui-blue);
}

/* ===== 26 键键盘网格表（第2章各布局表）===== */
table.fs-table.kbd {
  table-layout: fixed;
  width: 100%;
  max-width: 760px;
  text-align: center;
  font-size: 0.9em;
}
table.fs-table.kbd td {
  padding: 0.35em 0.15em;
  line-height: 1.25;
  word-break: keep-all;
}
table.fs-table.kbd .k {
  display: block;
  font-weight: bold;
  font-size: 1.05em;
  color: var(--fengshui-blue);
}
/* 高亮底色（对应 LaTeX \cellcolor）*/
table.fs-table.kbd .hl1 { background: #f0f0f0; }
table.fs-table.kbd .hl2 { background: #d9d9d9; }
table.fs-table.kbd .hl3 { background: #bfbfbf; }
table.fs-table.kbd .red { background: var(--fengshui-red); color: #fff; }
table.fs-table.kbd .red .k { color: #fff; }
table.fs-table.kbd .redl { background: #f4b3b3; }
table.fs-table.kbd .yellow { background: #ffe680; }
table.fs-table.kbd .black { background: #000; color: #fff; }
table.fs-table.kbd .black .k { color: #fff; }
table.fs-table.kbd .blue { background: #b3cdee; }
table.fs-table.kbd .green { background: #a3d9a3; }

/* ===== 编码示例表（第4章：首行合并标题 + 居中）===== */
table.fs-table.ex { text-align: center; }

/* ===== 单字拆分 / 拆解表 ===== */
table.fs-table.decomp { font-size: 0.92em; }
table.fs-table.decomp .kw {
  font-weight: bold;
  font-size: 1.15em;
  color: var(--fengshui-blue);
}
table.fs-table.decomp code {
  font-size: 0.85em;
  color: var(--fengshui-gray);
  background: none;
}
table.fs-table.decomp.big { font-size: 0.85em; }
table.fs-table.decomp.big td { padding: 0.2em 0.45em; }

/* 拆解表筛选框 */
.dt-filter {
  width: 100%;
  max-width: 480px;
  padding: 0.5em 0.7em;
  margin: 1em 0;
  font-size: 1em;
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* ===== 单字拆分示例表（03-decomposition.md，13 列）紧凑化 =====
   table-layout:fixed 锁列宽、占满内容区，防横向溢出（移动端仍由 .table-wrap 兜底）。
   :not(.big) 严格隔离 6775 字大表（decomposition-table.md）。字根列未指定宽度，
   由 fixed 布局自动均分剩余空间，故只需显式约束"单字列"与"空分隔列"。 */
table.fs-table.decomp:not(.big) {
  table-layout: fixed;
  width: 100%;
}
table.fs-table.decomp:not(.big) th,
table.fs-table.decomp:not(.big) td {
  padding: 0.3em 0.35em;        /* 原 0.4em 0.6em，收紧 */
  text-align: center;           /* 字根列居中（对应 LaTeX c 列）*/
  vertical-align: middle;
  word-break: keep-all;         /* CJK 字符不被劈开 */
  overflow-wrap: anywhere;      /* 编码超长时列内换行，不撑宽 */
}
/* "单字"列（第 1、8 列）：加宽 + 左对齐（对应 LaTeX l 列），允许"字+码"换行 */
table.fs-table.decomp:not(.big) :is(th, td):nth-child(1),
table.fs-table.decomp:not(.big) :is(th, td):nth-child(8) {
  width: 15%;
  text-align: left;
  white-space: normal;
}
/* 空分隔列（第 7 列）：极窄 + 去边框，模拟 LaTeX \cline 断开 */
table.fs-table.decomp:not(.big) :is(th, td):nth-child(7) {
  width: 2.5%;
  border: 0;
  padding: 0;
}

/* ===== 第5章统计表（05-statistics.md，7-8 列数据表）紧凑化 =====
   同 .decomp 思路：table-layout:fixed 占满内容区、列均分，防横向溢出
   （对应 LaTeX \resizebox{\textwidth} / {0.75\textwidth} 的受控宽度）。
   移动端仍由 .table-wrap 兜底。 */
table.fs-table.stats {
  table-layout: fixed;
  width: 100%;
}
table.fs-table.stats th,
table.fs-table.stats td {
  padding: 0.3em 0.4em;
  text-align: center;
  vertical-align: middle;
  word-break: keep-all;
}

/* ===== 多语言切换器（_includes/lang_switch.html）===== */
.lang-switch .lang-current {
  font-weight: bold;
  color: var(--fengshui-gray);
}
.lang-switch .lang-sep {
  color: var(--fengshui-gray);
  margin: 0 0.2em;
}

/* ===== 阿拉伯语 RTL（/ar/ 页面，由 head_custom.html 注入 html[dir="rtl"]）=====
   侧栏目录保持左侧不动：主题 .side-bar 为 position:fixed 且未显式设 left，
   dir=rtl 下其静态位置偏到右侧 → 显式 left:0 钉回左侧（.main 的 margin-left 是
   物理属性，不随 dir 反转，已为主区正确左留白）。数据表格强制 LTR（键盘物理布局/
   编码时序/拆解方向/统计列序，与 LTR 语言一致）；语言切换器强制 LTR 排版（语言
   顺序与其它语言一致，避免 dir=rtl 把「中文…العربية」整体反转；阿语字符仍按自身方向 shaping）。
   导航容器贴正文：主题 .side-bar 用 align-items:flex-end，dir=rtl 下交叉轴末端
   翻为靠左（贴窗口）→ 改 flex-start 让导航贴回正文一侧（右侧，与 LTR 视觉一致）。 */
[dir="rtl"] body { text-align: right; }
[dir="rtl"] .side-bar { left: 0; right: auto; align-items: flex-start; }
[dir="rtl"] table.fs-table { direction: ltr; }
[dir="rtl"] .lang-switch { direction: ltr; text-align: right; }

/* 导航 RTL：主题 .nav-list-* 全用物理 left/right（无逻辑属性）。容器贴正文由 .side-bar
   的 align-items:flex-start 解决（见上）；展开箭头与 .nav-list-link 的 padding 保持
   主题原值（箭头在右、右侧留位），与 LTR 一致。仅子菜单缩进需改：文字右对齐时主题原
   padding-left 无视觉效果，改 padding-right 让子项比父项向左缩进一层。特异性(0,4,0)>主题(0,3,0)。 */
[dir="rtl"] .nav-list .nav-list-item > .nav-list {
  padding-left: 0;
  padding-right: 0.75rem; /* 子菜单缩进：右对齐下需右侧缩进才有层级 */
}
