/* 配色参考原站 syndict.com（public.css）：灰白底、#333 正文、#32343a 深灰导航 */
:root {
    --bg: #f7f7f7;
    --card: #ffffff;
    --ink: #333;
    --muted: #999;
    --line: #d9d9d9;
    --line-soft: #ebebeb;
    --red: #8c2f24;
    --red-bg: #f5f5f5;
    --dark: #32343a;
    --dark-link: #b4b5bb;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    background: var(--bg);
    color: var(--ink);
    font: 15px/1.7 "PingFang SC", "Microsoft YaHei", sans-serif;
    min-height: 100vh; display: flex; flex-direction: column; /* 页脚置底 */
}

/* 全局链接：与原站一致，默认 #333、无下划线（压制浏览器默认蓝色） */
a, a:link, a:visited { color: #333; text-decoration: none; }
a:active, a:hover { color: #333; text-decoration: none; }

.wrap { max-width: 640px; margin: 0 auto; padding: 20px 16px 48px; width: 100%; flex: 1; }

.masthead { text-align: center; margin: 24px 0 8px; }
.masthead .logo { width: 180px; max-width: 70%; }
.masthead .sub { color: var(--muted); font-size: 13px; letter-spacing: 2px; margin-top: 4px; }

.search { position: relative; display: flex; gap: 10px; margin: 28px 0 8px; }
.search input {
    flex: 1; padding: 12px 14px; font-size: 17px;
    border: 1.5px solid var(--line); border-radius: 10px; background: var(--card); outline: none;
}
.search input:focus { border-color: var(--red); }
.search button {
    padding: 0 22px; border: 0; border-radius: 10px; cursor: pointer;
    background: var(--red); color: #fff6ec; font-size: 16px;
    white-space: nowrap; flex: none;
}
.suggest {
    position: absolute; top: 100%; left: 0; right: 78px; z-index: 5; display: none;
    background: var(--card); border: 1px solid var(--line); border-radius: 0 0 10px 10px;
    max-height: 300px; overflow: auto; text-align: left;
}
.suggest a { display: block; padding: 8px 14px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--bg); }
.suggest a:hover { background: var(--red-bg); }
.suggest b { color: var(--red); }

.result { list-style: none; margin-top: 16px; }
.result a {
    display: block; padding: 12px 14px; margin-bottom: 8px; text-decoration: none; color: var(--ink);
    background: var(--card); border: 1px solid var(--line); border-radius: 10px;
}
.result .head { font-size: 20px; font-weight: 600; margin-right: 10px; color: var(--red); }
.result .meta, .result .comp { color: var(--muted); font-size: 13px; margin-right: 10px; }
.result .brief { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }

.empty { text-align: center; color: var(--muted); margin: 40px 0; }

.topbar a { color: var(--red); text-decoration: none; font-size: 14px; }

.hero { display: flex; gap: 18px; margin: 18px 0 8px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 18px; }
.head-box .head { font-size: 64px; font-weight: 600; line-height: 1.1; }
.head-box .trad { display: block; color: var(--muted); font-size: 18px; margin-top: 6px; }
.hero-side { flex: 1; }
.pinyin { color: var(--muted); }
.comp-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0; }
.comp-row .comp { font-size: 24px; color: var(--red); font-weight: 600; }
.comp-row audio { height: 32px; max-width: 100%; }
.note, .brief { color: var(--muted); font-size: 13px; }

section { margin-top: 26px; }
h2 { font-size: 15px; color: var(--red); letter-spacing: 2px; border-left: 3px solid var(--red); padding-left: 10px; margin-bottom: 10px; }

/* v4.5：各地發音橫排膠囊（方案B：IPA/備註/音頻） */
.prons { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 14px; }
.prons li { display: inline-flex; align-items: baseline; flex-wrap: nowrap; gap: 7px; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; white-space: nowrap; }
.prons li:has(audio), .prons li:has(.d-note) { border-radius: 14px; align-items: center; }
.prons .d-name { font-weight: 600; min-width: 0; }
.prons .d-region { color: var(--muted); font-size: 12px; }
.prons .d-pron { color: var(--red); font-size: 17px; }
.prons audio { height: 28px; max-width: 180px; }
.prons .d-note { color: var(--muted); font-size: 12px; }
/* 悬停管理：拖动排序（悬停即手形，无需按钮）+ 临时隐藏（红色删除钮，当前会话生效） */
.prons li { position: relative; }
.prons li:hover { cursor: grab; }
.prons li.dragging { opacity: 0.45; cursor: grabbing; }
.prons .pron-ctl {
    display: none; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 22px; height: 22px; line-height: 20px; text-align: center; border-radius: 50%;
    background: var(--red); color: #fff; font-size: 15px; cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,.35); user-select: none;
}
.prons li:hover .pron-ctl { display: block; }
.prons .pron-ctl a { display: block; color: #fff; text-decoration: none; }
.prons .pron-ctl a:hover { background: #c62828; border-radius: 50%; }

.senses li, .examples li { margin: 8px 0 8px 22px; }
.senses i { font-style: normal; color: var(--red); font-size: 13px; margin-right: 6px; }
.senses .pos { white-space: nowrap; }
.senses .pos i:last-child { margin-right: 3px; }
/* 釋義裏肚引號詞鏈接（JS 自動生成）：同正文色+虛線下劃線，hover 變紅 */
.sense-link { color: inherit; text-decoration: underline dotted #b08d7e; text-underline-offset: 3px; }
.sense-link:hover { color: var(--red); }
.x-sentence { font-size: 17px; }
.x-pron { color: var(--red); font-size: 14px; }
.x-mandarin { color: var(--muted); font-size: 13px; }

.related a {
    display: inline-block; margin: 0 8px 8px 0; padding: 4px 14px; text-decoration: none;
    background: var(--card); border: 1px solid var(--line); border-radius: 999px; color: var(--ink);
}
.related a:hover { border-color: var(--red); color: var(--red); }
.related .rel-py { color: var(--red); font-size: 13px; margin-left: 4px; }
.related .rel-cate {
    display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 4px;
    background: var(--red); color: #fff; font-size: 11px; line-height: 16px; vertical-align: 1px;
}

/* ===== 后台登录态词条编辑入口（固定右下角，让开帐号浮窗） ===== */
.edit-fab {
    position: fixed; right: 22px; bottom: 86px; z-index: 999;
    padding: 8px 16px; border-radius: 999px;
    background: rgba(255, 255, 255, .95);
    color: var(--red); font-size: 13.5px; text-decoration: none;
    border: 1px solid rgba(140, 47, 36, .25);
    box-shadow: 0 2px 10px rgba(16, 24, 40, .12);
    transition: background .18s, color .18s, border-color .18s, box-shadow .18s;
}
.edit-fab:hover {
    background: var(--red); border-color: var(--red); color: #fff;
    box-shadow: 0 4px 14px rgba(140, 47, 36, .28);
}

/* ===== 右下角浮动帐号窗（登入 / 用户名） ===== */
.authfab { position: fixed; right: 22px; bottom: 26px; z-index: 1000; }
.authfab_btn {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 11px 20px; border-radius: 999px; border: 1px solid rgba(140, 47, 36, .32);
    background: rgba(255, 255, 255, .97); color: var(--red);
    font-size: 14px; font-weight: 500; line-height: 1;
    text-decoration: none; cursor: pointer; white-space: nowrap;
    box-shadow: 0 3px 12px rgba(16, 24, 40, .12);
    transition: transform .18s, box-shadow .18s, background .18s, color .18s, border-color .18s;
}
.authfab_btn:hover {
    background: var(--red); border-color: var(--red); color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(140, 47, 36, .3);
}
.authfab_btn.authfab_on {
    background: rgba(255, 255, 255, .97); color: var(--ink);
    border-color: var(--line); box-shadow: 0 3px 12px rgba(16, 24, 40, .12);
}
.authfab_btn.authfab_on:hover {
    background: #fff; color: var(--red); border-color: rgba(140, 47, 36, .32);
    box-shadow: 0 8px 20px rgba(16, 24, 40, .16);
}
.authfab_dot { width: 7px; height: 7px; border-radius: 50%; background: var(--red); flex: none; }
.authfab_nm { max-width: 8em; overflow: hidden; text-overflow: ellipsis; }
.authfab_menu {
    display: none; position: absolute; right: 0; bottom: calc(100% + 10px);
    min-width: 172px; padding: 6px; text-align: left;
    background: #fff; border: 1px solid var(--line); border-radius: 12px;
    box-shadow: 0 10px 28px rgba(16, 24, 40, .18);
}
.authfab_menu.on { display: block; }
.authfab_name {
    padding: 9px 10px 11px; margin-bottom: 4px; border-bottom: 1px solid var(--line);
    font-size: 14px; font-weight: 600; color: var(--ink); word-break: break-all;
}
.authfab_role {
    font-style: normal; font-size: 11px; font-weight: 400;
    color: var(--red); background: var(--red-bg);
    border-radius: 4px; padding: 1px 5px; margin-left: 6px;
}
.authfab_menu a { display: block; padding: 9px 10px; border-radius: 8px; font-size: 14px; color: var(--ink); }
.authfab_menu a:hover { background: var(--red-bg); color: var(--red); }

@media (max-width: 640px) {
    .authfab { right: 14px; bottom: 16px; }
    .authfab_btn { padding: 10px 17px; font-size: 13.5px; }
    .edit-fab { right: 14px; bottom: 76px; }
}

/* ===== v4：导航 / 新页面（原站深灰导航条版式，通栏全宽） ===== */
/* 窄屏换行：不用固定 height + overflow:hidden，否则第二行会被剪掉 */
.mainnav {
    background: var(--dark); width: 100%; flex: none;
}
.mainnav_in {
    max-width: 640px; margin: 0 auto; padding: 3px 14px;
    display: flex; gap: 0 24px; justify-content: center; flex-wrap: wrap;
    min-height: 46px;
}
.mainnav a {
    padding: 0 2px; border-radius: 0; text-decoration: none;
    color: var(--dark-link); font-size: 14px; line-height: 40px; transition: color 0.27s;
}
.mainnav a.on, .mainnav a:hover { background: none; color: #fff; }

/* 导航右侧：共享用户系统 登入/用户名·登出 */
.mainnav a.nav-user {
    margin-left: auto; color: #f5b8a5; font-weight: 500;
    white-space: nowrap;
}
.mainnav a.nav-user:hover { color: #fff; }
/* 管理员：名字后面挂角色标签，再给一个后台入口 */
.mainnav .nav-role {
    font-style: normal; font-size: 11px; line-height: 1.4; font-weight: 400;
    color: #f6d3c3; background: rgba(255, 255, 255, .14);
    border-radius: 4px; padding: 1px 4px; margin: 0 4px 0 4px;
}
.mainnav a.nav-admin { color: #f5b8a5; font-weight: 500; }
.mainnav a.nav-admin:hover { color: #fff; }

/* ===== 手机端导航：收紧间距自然换行，登入不再右对齐（否则换行后孤零零贴右） ===== */
@media (max-width: 640px) {
    .mainnav_in { gap: 0 14px; padding: 2px 12px; min-height: 0; }
    .mainnav a { font-size: 13.5px; line-height: 36px; }
    .mainnav a.nav-user { margin-left: 0; max-width: 9em; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 350px) {
    .mainnav_in { gap: 0 10px; padding: 2px 8px; }
    .mainnav a { font-size: 12.5px; line-height: 34px; }
}

/* 登录提示条（authmsg：验票失败、state 失效、未配置认证中心等） */
.authmsg {
    margin: 0 0 14px; padding: 9px 12px; border-radius: 4px;
    background: #fff7e6; border: 1px solid #f0d9a8; color: #8a5a00;
    font-size: 14px; line-height: 1.5;
}

/* 找不到网页 → 已回首页的提示（.htaccess 带 from404=1 时输出） */
.notfound { margin: 0 0 14px; padding: 9px 12px; border-radius: 4px; background: #fff; border: 1px solid var(--line); color: #777; font-size: 13.5px; line-height: 1.6; }

/* ===== 登录页（login.php） ===== */
.login-box {
    max-width: 380px; margin: 36px auto 56px; padding: 26px 24px 20px;
    background: #fffdf8; border: 1px solid #eee3cf; border-radius: 14px;
    box-shadow: 0 6px 24px rgba(120, 80, 40, .07);
}
.login-box h1 { margin: 0 0 6px; font-size: 21px; color: #8c2f24; font-weight: 600; }
.login-box .sub { margin: 0 0 18px; font-size: 13px; color: #9a8f80; line-height: 1.6; }
.login-box label { display: block; margin: 14px 0 6px; font-size: 13px; color: #6b6156; }
.login-box input[type=text],
.login-box input[type=password] {
    width: 100%; box-sizing: border-box; padding: 11px 13px;
    border: 1.5px solid #e4dac6; border-radius: 10px; background: #fff;
    font-size: 15px; color: #3b332b;
}
.login-box input[type=text]:focus,
.login-box input[type=password]:focus { outline: none; border-color: #c9a06a; }
.login-box button {
    width: 100%; margin-top: 20px; padding: 12px; border: 0; border-radius: 10px;
    background: #8c2f24; color: #fff6ec; font-size: 16px; cursor: pointer;
    transition: background .18s;
}
.login-box button:hover { background: #7a271d; }
/* 认证中心模式：脚本载入前按钮是禁用的，别让它看起来还能点 */
.login-box button[disabled] { background: #c9b8a8; cursor: default; }
.login-box button[disabled]:hover { background: #c9b8a8; }
.login-box .err {
    margin: 0 0 4px; padding: 9px 12px; border-radius: 8px;
    background: #fdecea; color: #b3261e; font-size: 13.5px; line-height: 1.5;
}
.login-box .err[hidden] { display: none; }
.login-box .tips { margin: 18px 0 0; font-size: 12.5px; color: #a49786; line-height: 1.8; }
.login-box .tips a { color: #8c2f24; }
@media (max-width: 640px) {
    .login-box { margin: 18px 12px 40px; padding: 22px 18px 16px; }
}

/* 页脚（参考原站 syndict.com 版式）
   窄屏用 flex 自动换行；不再用「浮动 + 固定 45px 高 + 45px 行高」，否则文字换成两行时会压在一起 */
.end { width: 100%; margin-top: 48px; background: #f0f0f0; border-top: 1px solid #ebebeb; flex: none; }
.end_in {
    max-width: 960px; margin: 0 auto; padding: 10px 16px; min-height: 45px;
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 6px 20px;
}
.end_left {
    order: 1; min-width: 0;
    display: flex; align-items: center; flex-wrap: wrap; gap: 4px 18px;
    font-size: 14px; color: #bdbdbd;
}
.end_left em { font-style: normal; }
.end_left em a { color: #bdbdbd; transition: color 0.27s; }
.end_left em a:hover { text-decoration: underline; color: #999; }
.end_right { order: 2; display: flex; align-items: center; gap: 10px; }
.aboutUs { font-size: 14px; }
.aboutUs a { padding-right: 18px; margin-right: 4px; color: #b2b2b2; border-right: 1px solid #e5e5e5; }
.aboutUs a:hover { text-decoration: underline; }
.follow_us { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 12px; }
.follow_us li { margin: 0; }
/* 图标：老站同款精灵图（68x64 为 2x，显示 17x16），灰为常态，悬停换到右侧彩色格子点亮 */
.follow_us li a {
    width: 17px; height: 16px; display: block; cursor: pointer;
    background: url(icon_followUs.png) no-repeat; background-size: auto 32px;
}
.follow_us li a.weibo  { background-position: 0 0; }
.follow_us li a.weibo:hover  { background-position: -17px 0; }
.follow_us li a.wechat { background-position: 0 -16px; }
.follow_us li a.wechat:hover { background-position: -17px -16px; }
.win_wechat { position: fixed; left: 50%; top: 40%; transform: translate(-50%, -50%); background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; padding: 16px 20px; box-shadow: 0 6px 24px rgba(0,0,0,0.15); z-index: 99; text-align: center; }
.win_wechat p { margin: 0 0 10px; font-size: 15px; color: #555; }
/* 公众号二维码（老站同款图） */
.wechat_img { width: 160px; height: 160px; margin: 0 auto; }
.wechat_img img { width: 100%; height: 100%; display: block; }
@media (max-width: 640px) {
    .end { margin-top: 32px; }
    .end_in { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 16px; }
    .end_left { order: 2; gap: 2px 14px; line-height: 1.6; }
    .end_right { order: 1; }
}

.quicklinks { list-style: none; display: flex; gap: 10px; justify-content: center; margin: 12px 0 0; flex-wrap: wrap; }
.quicklinks a {
    display: inline-block; padding: 8px 18px; text-decoration: none; font-size: 13px;
    background: var(--card); border: 1px solid var(--line); border-radius: 999px; color: var(--muted);
}
.quicklinks a:hover { border-color: var(--red); color: var(--red); }

form textarea {
    width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--line);
    border-radius: 4px; background: var(--card); font: inherit; line-height: 1.6;
}
form textarea:focus { border-color: var(--red); outline: none; }
.formrow { display: flex; align-items: center; gap: 12px; margin-top: 12px; }

.hint-line { color: var(--muted); font-size: 13px; }
.hint-line .meta, .hint-line .comp, .hint-line .brief { margin-right: 12px; }
.hint-line .comp { color: var(--red); }
.ok { background: #eef7ee; border: 1px solid #cde5cd; color: #2e6b2e; border-radius: 10px; padding: 10px 14px; font-size: 14px; }
.err { background: #fbeeee; border: 1px solid #eccccc; color: #8c2f24; border-radius: 10px; padding: 10px 14px; font-size: 14px; }

table.grid { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
table.grid th, table.grid td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--line); font-size: 14px; }
table.grid th { background: var(--bg); color: var(--muted); font-weight: 500; font-size: 12px; }
table.grid tr:last-child td { border-bottom: 0; }
/* 对译参考：左列可点击但样式与右列一致（压制系统默认蓝字下划线） */
table.wm td a, table.wm td a:link, table.wm td a:visited {
    color: inherit; text-decoration: none; cursor: pointer;
}
table.wm td a:hover { color: var(--red); text-decoration: none; }

/* 註音結果：逐字上標讀音 */
.ruby-line { display: flex; flex-wrap: wrap; gap: 6px 2px; line-height: 1.4; }
.ruby-item { display: inline-flex; flex-direction: column; align-items: center; min-width: 30px; padding: 2px 3px; border-radius: 6px; }
.ruby-item i { font-style: normal; color: var(--red); font-size: 11px; height: 14px; }
.ruby-item { font-size: 19px; }
.ruby-miss { color: var(--muted); background: #f0f0f0; }
.ruby-blank { font-size: 14px; }
/* 屬於同一個詞的字：底部細線連成一組 */
.ruby-word { box-shadow: inset 0 -2px 0 var(--line); }
/* 分詞結果 */
.seg-line { margin-top: 12px; color: var(--muted); font-size: 13px; }
.seg { display: inline-block; margin-right: 4px; padding: 1px 5px; border-radius: 4px; background: var(--line-soft); }
.seg-w { background: #f3ecea; color: var(--ink); }

/* ===== v4.1：客拼 + IPA 双音标 ===== */
.ipa { color: var(--muted); font-size: 15px; font-family: "Charis SIL","Doulos SIL","Times New Roman",serif; }
.comp-row .ipa { font-size: 17px; }
.prons .d-ipa { color: var(--muted); font-size: 14px; font-family: "Charis SIL","Doulos SIL","Times New Roman",serif; }
.toggle-more { margin: 8px 0 0; }
.toggle-more a { color: var(--red); font-size: 13px; text-decoration: none; }
table.grid .d-ipa { color: var(--muted); font-family: "Charis SIL","Doulos SIL","Times New Roman",serif; }

/* ===== v4.2：hero 播放按钮（与 demo 版式一致） ===== */
.play-btn {
    border: 0; cursor: pointer; padding: 7px 16px; border-radius: 999px;
    background: var(--red); color: #fff; font-size: 13px; font-family: inherit;
}
.play-btn.off { background: #e8e8e8; color: var(--muted); cursor: default; }
.prons .play-btn { padding: 4px 12px; font-size: 12px; }

/* ===== v4.3：多音字其他讀音（index 风格列表） ===== */
.readings-note { margin-bottom: 4px; }
.result.readings { margin: 0; }
.result.readings a { padding: 6px 10px; }
.result.readings .brief { max-width: none; }

/* ===== v4.4：entry 頁小版頭 + 廣韻行 ===== */
.masthead-mini { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.masthead .logo-mini { width: 34px; flex: none; border-radius: 5px; }
.search-mini { flex: 1; min-width: 240px; margin: 0; }
.search-mini input { max-width: none; }
.note.gy { color: var(--muted); }

/* ===== v4.5：標籤 ===== */
.tags { margin: 10px 0 0; color: var(--muted); font-size: 13px; }
.tags .tag {
    display: inline-block; margin: 0 8px 8px 0; padding: 3px 12px;
    background: var(--card); border: 1px solid var(--line); border-radius: 999px;
    color: var(--red); font-size: 13px; text-decoration: none;
}
.tags .tag:hover { border-color: var(--red); }
.tags .tag i { font-style: normal; color: var(--muted); font-size: 11px; margin-left: 5px; }
.toggle-more button { border: 1px solid var(--line); background: var(--card); color: var(--red); border-radius: 999px; padding: 7px 22px; cursor: pointer; font-size: 14px; font-family: inherit; }
.toggle-more button:disabled { color: var(--muted); }

/* 語言地區頁（language.php）：數據來自 dialect 表 */
.rg-title { font-size: 14px; color: var(--muted); letter-spacing: 1px; margin: 24px 0 10px; font-weight: 600; }
.rg-count { margin-left: 10px; font-size: 12px; font-weight: 400; color: #aaa; }
.dia-box { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; margin-bottom: 10px; }
.dia-box b { font-size: 16px; }
.dia-box .d-region { margin-left: 8px; color: var(--muted); font-size: 12px; }
.dia-meta { margin-left: 10px; font-size: 12px; color: #999; }
.dia-tags { margin: 8px 0 0; }
.dia-empty { color: #999; border-style: dashed; }

/* 對譯頁：方向切換與直譯結果 */
.dirrow { display: flex; gap: 18px; margin-bottom: 10px; font-size: 14px; }
.dirrow label.inline { display: inline-flex; align-items: center; gap: 5px; margin: 0; }
.tr-out { font-size: 20px; line-height: 1.75; background: #faf7f2; border-left: 3px solid var(--red); padding: 10px 14px; margin: 10px 0 6px; }
.tr-tokens { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 12px 0 0; }
.tr-tokens .tk { font-size: 14px; padding: 3px 8px; border-radius: 4px; background: #f3efe8; }
.tr-tokens .tk b { font-weight: 400; color: var(--muted); margin-right: 5px; }
.tr-tokens .tk.miss { background: #fbe9e7; }
.tr-tokens .tk.miss b { color: var(--red); }

/* 對譯頁：帶註音結果 + 複製按鈕 */
.anno-plain { background: var(--card); border: 1px solid var(--line-soft); border-radius: 8px; padding: 8px 12px; margin: 10px 0 0; font-size: 15px; line-height: 1.7; word-break: break-all; }
.anno-plain .anno-label { display: inline-block; min-width: 56px; margin-right: 8px; color: var(--muted); font-size: 12px; }
.copy-row { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0 0; }
.btn-copy { border: 1px solid var(--line); background: var(--card); color: var(--red); border-radius: 999px; padding: 5px 14px; font-size: 13px; font-family: inherit; cursor: pointer; transition: .18s; }
.btn-copy:hover { border-color: var(--red); background: #faf7f2; }
.btn-copy:disabled { color: var(--muted); border-color: var(--line-soft); background: var(--card); cursor: default; }

/* 首頁搜尋結果：載入更多 */
.more-wrap { text-align: center; margin-top: 16px; }
.more-wrap button { border: 1px solid var(--line); background: var(--card); color: var(--red); border-radius: 999px; padding: 7px 26px; cursor: pointer; font-size: 14px; font-family: inherit; transition: .18s; }
.more-wrap button:hover { border-color: var(--red); background: #faf7f2; }
.more-wrap button:disabled { color: var(--muted); border-color: var(--line-soft); background: var(--card); cursor: default; }

/* ===== v4.5：長詞詳情頁適配（字號按詞長遞減，手機端縱向堆疊） ===== */
.head-box.len-lg .head { font-size: 52px; }
.head-box.len-xl .head { font-size: 40px; }
@media (max-width: 640px) {
    .hero { flex-direction: column; gap: 10px; }
    .search-mini { min-width: 0; }
    .search-mini input { min-width: 0; }
    .head-box .head { font-size: 44px; }
    .head-box.len-lg .head { font-size: 34px; }
    .head-box.len-xl .head { font-size: 26px; }
    .comp-row { gap: 4px 10px; }
    .comp-row .comp { font-size: 18px; word-break: break-all; }
    .comp-row .ipa { font-size: 13.5px; word-break: break-all; }
    .prons li { white-space: normal; flex-wrap: wrap; border-radius: 14px; }
    .prons .d-pron { word-break: break-all; }
    .prons .d-ipa { word-break: break-all; }
    .prons audio { max-width: 100%; flex: 1 1 100%; }
    .hero-side .brief, .hero-side .note { word-break: break-word; }
}

/* ===== v4.6：詞條收集頁（collect.php）表單 ===== */
.wrap > .ok, .wrap > .err { margin-bottom: 14px; }

.cf-lead {
    background: var(--card); border: 1px solid var(--line); border-radius: 14px;
    padding: 18px 20px; margin: 4px 0 16px;
}
.cf-lead h1 { font-size: 19px; font-weight: 600; letter-spacing: 2px; color: var(--red); }
.cf-lead p { color: var(--muted); font-size: 13px; line-height: 1.8; margin-top: 8px; }

.cf-card {
    background: var(--card); border: 1px solid var(--line); border-radius: 14px;
    padding: 16px 18px 18px; margin-bottom: 14px;
}
.cf-t {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    font-size: 14px; font-weight: 600; letter-spacing: 2px; color: var(--red);
    padding-left: 10px; border-left: 3px solid var(--red); line-height: 1.2;
    margin-bottom: 16px;
}
.cf-t .cf-tip { font-size: 12px; font-weight: 400; letter-spacing: 0; color: #aaa; }

.cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.cf-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.cf-field.wide { grid-column: 1 / -1; }
.cf-field > label {
    display: flex; align-items: center; gap: 6px;
    font-size: 13px; color: #555; line-height: 1.4;
}
.cf-req {
    color: var(--red); font-size: 11.5px; letter-spacing: 0;
    background: #f7ecea; border-radius: 4px; padding: 1px 6px;
}
.cf-opt {
    color: #b0b0b0; font-size: 11.5px; letter-spacing: 0;
    border: 1px solid var(--line-soft); border-radius: 999px; padding: 0 6px; line-height: 16px;
}

.cf-field input[type="text"], .cf-field select, .cf-field textarea {
    width: 100%; padding: 10px 12px; font: inherit; font-size: 15px; color: var(--ink);
    background: #fff; border: 1px solid var(--line); border-radius: 9px;
    outline: none; transition: border-color .18s, box-shadow .18s;
}
.cf-field textarea { resize: vertical; line-height: 1.65; }
.cf-field input[type="text"]:focus, .cf-field select:focus, .cf-field textarea:focus {
    border-color: var(--red); box-shadow: 0 0 0 3px rgba(140, 47, 36, .08);
}
.cf-field input::placeholder, .cf-field textarea::placeholder { color: #c3c3c3; }
.cf-field select {
    appearance: none; -webkit-appearance: none; padding-right: 34px; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 13px center; background-size: 10px 6px;
}
.cf-hint { font-size: 12px; color: #aaa; line-height: 1.5; }

.cf-actions {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px 20px; flex-wrap: wrap; margin: 4px 0 0;
}
.cf-submit {
    border: 0; cursor: pointer; font-family: inherit; font-size: 15px;
    padding: 11px 36px; border-radius: 999px;
    background: var(--red); color: #fff6ec;
    box-shadow: 0 2px 10px rgba(140, 47, 36, .2); transition: background .18s, box-shadow .18s;
}
.cf-submit:hover { background: #7a281f; box-shadow: 0 4px 14px rgba(140, 47, 36, .28); }
.cf-submit:disabled { background: #c9b7b3; box-shadow: none; cursor: default; }
.cf-agree { color: var(--muted); font-size: 12.5px; line-height: 1.65; max-width: 360px; }

@media (max-width: 640px) {
    .cf-grid { grid-template-columns: 1fr; }
    .cf-card { padding: 14px 14px 16px; }
    .cf-lead { padding: 16px; }
    .cf-submit { width: 100%; }
    .cf-agree { max-width: none; }
}

/* ===== Google AdSense 手动广告位（2026-11-06 起只用手动单元） =====
   现只保留页脚一处；正文中段广告位因影响阅读已停用（entry.php 已移除调用）。
   容器先占好高度，广告填充回来时不会把下面的内容顶下去（防 CLS）。
   页脚高度按经验值预留：桌面 90px、手机 50px；
   如果实际投放出来是别的尺寸，改下面的 min-height 即可。 */
.ad_slot { text-align: center; }
.ad_slot ins { display: block; margin: 0 auto; }
.ad_slot--footer { max-width: 1100px; margin: 24px auto 0; padding: 0 16px; min-height: 90px; }
@media (max-width: 640px) {
    .ad_slot--footer { margin-top: 16px; min-height: 50px; }
}

/* ===== 關於頁（about.php）：舊站 about.htm 的內容，改用新版版式 ===== */
.about h1 { font-size: 22px; font-weight: 600; letter-spacing: 1px; color: var(--ink); margin: 18px 0 4px; }
.about .lead { color: var(--muted); font-size: 13px; letter-spacing: 1.5px; margin: 0 0 6px; }
.about section { margin-top: 26px; }
.about p { margin: 0 0 12px; }
.about p:last-child { margin-bottom: 0; }
.about a { color: var(--red); text-decoration: none; border-bottom: 1px solid rgba(140, 47, 36, .28); }
.about a:hover { border-bottom-color: var(--red); }
.about .mail { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; }

/* 數據卡：詞條 / 讀音 / 地點 */
.about .stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.about .stat {
    flex: 1 1 150px; padding: 12px 10px 11px; text-align: center;
    background: var(--card); border: 1px solid var(--line-soft); border-radius: 10px;
}
.about .stat b {
    display: block; font-size: 21px; font-weight: 600; color: var(--red);
    letter-spacing: .5px; font-variant-numeric: tabular-nums; line-height: 1.25;
}
.about .stat span { display: block; margin-top: 2px; font-size: 12px; color: var(--muted); letter-spacing: 1.5px; }

/* 捐助二維碼：居中、留白、不加陰影免得搶眼 */
.about .donate { margin: 14px 0 0; text-align: center; }
.about .donate img {
    width: 220px; max-width: 100%; height: auto; padding: 6px;
    background: var(--card); border: 1px solid var(--line); border-radius: 10px;
}
.about .donate-tip { margin-top: 8px; font-size: 12.5px; color: var(--muted); letter-spacing: 1px; }

/* 友情鏈接：與標籤同款膠囊 */
.about .links a {
    display: inline-block; margin: 0 8px 8px 0; padding: 4px 14px;
    background: var(--card); border: 1px solid var(--line); border-radius: 999px;
    color: var(--red); font-size: 13px;
}
.about .links a:hover { border-color: var(--red); }

@media (max-width: 640px) {
    .about h1 { font-size: 20px; }
    .about .stat { flex: 1 1 30%; padding: 10px 6px; }
    .about .stat b { font-size: 18px; }
}
.about .sign {
    margin: 28px 0 0; padding-top: 16px; border-top: 1px solid var(--line-soft);
    color: var(--muted); font-size: 13px; letter-spacing: 1px; text-align: center;
}

/* 只有 logo 的版头（教材 / 輸入法 / 地區 / 關於薪典：2026-11-06 起这几页不放搜索框）
   logo 靠左孤零零的不好看，居中當印章用 */
.masthead-solo { justify-content: center; margin: 18px 0 2px; }
