:root{
  --bg:#f6f3ec; --bg2:#efe9dc; --panel:#fffdf8; --card:#ffffff; --line:#e5ddcb; --line2:#d5c8ae;
  --fg:#2b2620; --sub:#8a7f68; --accent:#9a2b2b; --accent-d:#7a1f1f; --gold:#b8935a;
  --err:#b3261e; --shadow:0 2px 8px rgba(122,90,30,.06);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',serif;
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.topbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--bg),var(--bg) 70%,rgba(246,243,236,.85));
  border-bottom:1px solid var(--line);padding:13px 16px;padding-top:calc(13px + env(safe-area-inset-top));
  display:flex;align-items:center;gap:8px;backdrop-filter:blur(8px)}
.brand{font-size:20px;font-weight:700;letter-spacing:4px;color:var(--accent);font-family:'STKaiti','KaiTi',serif}
.brand::before{content:'';display:inline-block;width:4px;height:18px;background:var(--accent);border-radius:2px;margin-right:9px;vertical-align:-3px}
.wrap{max-width:720px;margin:0 auto;padding:0 16px;padding-bottom:70px}
.bottom-space{height:30px}
.home-hero{text-align:center;padding:34px 0 22px}
.hero-brand{font-size:34px;font-weight:700;letter-spacing:10px;color:var(--accent);font-family:'STKaiti','KaiTi',serif;text-indent:10px}
.hero-sub{font-size:12.5px;color:var(--sub);letter-spacing:3px;margin-top:8px}
.hero-sub::before,.hero-sub::after{content:'—';margin:0 10px;color:var(--line2);vertical-align:1px}
.seo-links{margin:22px 0 6px;padding:14px 14px 10px;background:#fffdf8;border:1px solid #eae3d3;border-radius:10px}
.seo-links-t{font-size:12px;color:#9a9182;letter-spacing:2px;margin-bottom:10px}
.seo-links a{display:inline-block;font-size:13px;line-height:1.6;color:#6b6459;background:#f7f3e9;border:1px solid #e6dfd0;border-radius:16px;padding:6px 12px;margin:0 8px 8px 0;text-decoration:none}
.seo-links a:active{background:#efe8d8}
.download-bar{display:flex;align-items:center;gap:10px;margin:4px 0 26px;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;padding:13px 16px;border-radius:12px;box-shadow:0 6px 18px rgba(154,43,43,.28);transition:.16s}
.download-bar:active{transform:translateY(1px) scale(.99)}
.dl-icon{font-size:18px;font-weight:700;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.dl-text{flex:1;font-size:15px;font-weight:600;letter-spacing:.5px}
.dl-arrow{font-size:22px;opacity:.8}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.cell{position:relative;aspect-ratio:1.5/1;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:var(--shadow);transition:.16s;padding:8px;overflow:hidden}
.cell::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--gold));opacity:.85}
.cell:active{transform:scale(.96);background:#faf6ee}
.cell-name{font-size:15px;font-weight:600;color:var(--fg);letter-spacing:.5px;word-break:break-all}
.link{color:var(--accent);font-size:13px}
.ops{margin-top:22px;text-align:center}
.crumb{font-size:13px;color:var(--sub);padding:16px 0 10px}
.crumb a{color:var(--sub)}
.crumb span{margin:0 6px;color:var(--line2)}
.page-lead{margin-bottom:14px}
.page-lead h1{font-size:21px;margin:0;font-weight:700;color:var(--accent);letter-spacing:3px;font-family:'STKaiti','KaiTi',serif}
.form-tip{background:#fbf3e0;border:1px solid #e6d3a3;border-left:4px solid var(--accent);color:#7a5a1e;font-size:13px;line-height:1.6;padding:9px 12px;border-radius:6px;margin-bottom:14px}
.form{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px 14px;margin-bottom:20px}
.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row-label{flex:0 0 32%;font-size:14px;color:var(--fg);font-weight:500}
.row-input{flex:1;min-width:0}
.input{width:100%;padding:10px 11px;border:1px solid var(--line2);border-radius:8px;background:#fdfbf6;color:var(--fg);font-size:15px;font-family:inherit;outline:none;-webkit-appearance:none;appearance:none;transition:.15s}
.input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(154,43,43,.08)}
select.input{background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}
.adv{margin:8px 0 4px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#faf7ef}
.adv summary{padding:11px 14px;font-size:13.5px;color:var(--sub);cursor:pointer;list-style:none;user-select:none}
.adv summary::-webkit-details-marker{display:none}
.adv summary::after{content:'＋';float:right;color:var(--accent);font-weight:700}
.adv[open] summary::after{content:'－'}
.adv .row{padding:11px 14px;border-bottom:1px solid var(--line)}
.adv .row:last-child{border-bottom:none}
.form-ops{display:flex;align-items:center;gap:16px;padding:16px 0 6px}
.btn{font-family:inherit;font-size:15px;cursor:pointer;border-radius:9px;border:1px solid var(--line2);background:#fff;color:var(--fg);padding:11px 20px;transition:.15s;text-align:center}
.btn:active{transform:translateY(1px)}
.btn-main{background:linear-gradient(135deg,var(--accent),var(--accent-d));border:none;color:#fff;font-weight:600;padding:12px 40px;letter-spacing:3px;box-shadow:0 4px 14px rgba(154,43,43,.28)}
.notice{padding:11px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}
.notice-err{background:#fbeceb;border:1px solid #e8b4b0;color:var(--err)}
.panel{border:1px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:18px;overflow:hidden;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14.5px;font-weight:600;background:linear-gradient(180deg,#f4efe3,#efe8d8);color:var(--accent);letter-spacing:1px}
.panel-meta{font-weight:400;font-size:12px;color:var(--sub);letter-spacing:0}
.panel-body{padding:14px 16px}
.rh{font-size:15px;margin:16px 0 8px;color:var(--accent);font-weight:700;border-left:3px solid var(--accent);padding-left:9px;letter-spacing:.5px}
.rh:first-child{margin-top:0}
.rp{margin:4px 0;font-size:14px}
.rl{margin:3px 0;font-size:14px;padding-left:16px;position:relative}
.rl::before{content:'·';position:absolute;left:4px;color:var(--accent);font-weight:700}
.rsp{height:5px}
.rp strong,.rl strong,.tbl strong{color:var(--accent);font-weight:700}
.tbl-wrap{overflow-x:auto;margin:10px 0;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid var(--line)}
.tbl{border-collapse:collapse;width:100%;font-size:13px;min-width:100%}
.tbl th,.tbl td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 10px;text-align:left;white-space:nowrap}
.tbl th:last-child,.tbl td:last-child{border-right:none}
.tbl tr:last-child td{border-bottom:none}
.tbl th{background:#f0e9da;color:var(--accent);font-weight:700}
.tbl tbody tr:nth-child(even){background:#faf7ef}
.dt-row{display:flex;gap:8px}
.dt-row .input:first-child{flex:1.4}
.dt-row .input:last-child{flex:1}
.checks{display:flex;flex-wrap:wrap;gap:8px 14px}
.check{display:inline-flex;align-items:center;gap:5px;font-size:14px;cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--accent)}
.qrows{display:flex;flex-direction:column;gap:10px}
.qrow{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fdfbf6}
.qrow-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--sub);margin-bottom:8px}
.qdel{font-family:inherit;font-size:12px;color:var(--accent);background:none;border:1px solid var(--line2);border-radius:6px;padding:2px 8px;cursor:pointer}
.qline{display:flex;flex-wrap:wrap;gap:10px 14px}
.qf{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--sub);min-width:120px;flex:1 1 120px}
.qf>span{font-size:12px}
.q-mutagen{flex:1 1 100%}
.checkrow{display:flex;gap:14px;flex-wrap:wrap;padding-top:2px}
.qadd{margin-top:10px;padding:7px 14px;font-size:14px}
.ai-fab{position:fixed;right:18px;bottom:calc(20px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;font-size:16px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 22px rgba(154,43,43,.42);z-index:60;transition:.18s}
.ai-fab:active{transform:scale(.9)}
.ai-sheet{position:fixed;top:0;left:0;right:0;bottom:0;z-index:70;visibility:hidden;pointer-events:none}
.ai-sheet.open{visibility:visible;pointer-events:auto}
.ai-mask{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);opacity:0;transition:.25s}
.ai-sheet.open .ai-mask{opacity:1}
.ai-panel{position:absolute;left:0;right:0;bottom:0;height:58vh;background:var(--panel);border-radius:18px 18px 0 0;transform:translateY(100%);transition:.28s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}
.ai-sheet.open .ai-panel{transform:translateY(0)}
.ai-bar{width:40px;height:4px;border-radius:2px;background:var(--line2);margin:10px auto 4px}
.ai-head{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 12px;font-weight:700;color:var(--accent);border-bottom:1px solid var(--line);letter-spacing:2px}
.ai-x{background:none;border:none;color:var(--sub);font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.ai-body{padding:14px 18px;flex:1;display:flex;flex-direction:column;gap:12px;overflow:hidden}
.ai-prompt{flex:1;width:100%;border:1px solid var(--line2);border-radius:10px;background:#fdfbf6;padding:12px;font-size:13px;line-height:1.75;color:var(--fg);resize:none;outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.ai-prompt:focus{border-color:var(--accent)}
.ai-btns{display:flex;gap:10px}
.ai-btns .btn{flex:1;display:flex;align-items:center;justify-content:center;text-align:center}
.ai-btns .btn-main{padding:12px 0;letter-spacing:1px}
.btn.disabled{opacity:.45;pointer-events:none}

/* 旧版 WebView 兼容（不支持 gap / inset / vh 混用） */
.topbar>*+*{margin-left:8px}
.download-bar>*+*{margin-left:10px}
.form-ops>*+*{margin-left:16px}
.dt-row>*+*{margin-left:8px}
.check+.check{margin-left:14px}
.checkrow>*+*{margin-left:14px}
.qrows>*+*{margin-top:10px}
.qline>*{margin-right:14px}
.qf>*+*{margin-top:4px}
.ai-btns>*+*{margin-left:10px}
.ai-body>*+*{margin-top:12px}
@supports (gap:1px){
  .topbar{gap:8px}.topbar>*+*{margin-left:0}
  .download-bar{gap:10px}.download-bar>*+*{margin-left:0}
  .form-ops{gap:16px}.form-ops>*+*{margin-left:0}
  .dt-row{gap:8px}.dt-row>*+*{margin-left:0}
  .check{gap:5px}
  .checkrow{gap:14px}.checkrow>*+*{margin-left:0}
  .qrows{gap:10px}.qrows>*+*{margin-top:0}
  .qline{gap:10px 14px}.qline>*{margin-right:0}
  .qf{gap:4px}.qf>*+*{margin-top:0}
  .ai-btns{gap:10px}.ai-btns>*+*{margin-left:0}
  .ai-body{gap:12px}.ai-body>*+*{margin-top:0}
}

/* 旧 WebView 降级：aspect-ratio 不支持时用 padding-top 占位 */
.cell::before{content:'';display:block;padding-top:66.6%}
@supports (aspect-ratio:1/1){
  .cell::before{display:none}
}
/* env() 不支持时，safe-area 的 calc/padding 会整条失效，这里给基础值 */
@supports not (padding:env(safe-area-inset-top)){
  .topbar{padding-top:13px}
  .ai-fab{bottom:20px}
  .ai-panel{padding-bottom:0}
}



/* ===== 佛典查阅 ===== */

/* 顶部工具 Tab 栏：横向滚动 + 下划线高亮 */
.tj-bar{display:flex;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--line);margin:4px 0 16px;scrollbar-width:none}
.tj-bar::-webkit-scrollbar{display:none}
.tj-bar-item{flex:0 0 auto;position:relative;padding:11px 15px;font-size:15px;color:var(--sub);white-space:nowrap;transition:.15s}
.tj-bar-item.on{color:var(--accent);font-weight:700}
.tj-bar-item.on::after{content:'';position:absolute;left:15px;right:15px;bottom:-1px;height:3px;background:var(--accent);border-radius:3px 3px 0 0}
.tj-bar-item:active{opacity:.7}

/* 用途提示 */
.tj-hint{font-size:13px;color:var(--sub);line-height:1.7;margin:0 0 14px;padding:0 2px}

/* 搜索区：大输入框 + 按钮 */
.tj-form{margin-bottom:20px}
.tj-search{display:flex;gap:0;border:1.5px solid var(--line2);border-radius:12px;background:#fff;overflow:hidden;box-shadow:var(--shadow);transition:.15s}
.tj-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(154,43,43,.08)}
.tj-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;font-family:inherit;color:var(--fg);padding:15px 16px}
.tj-search-input::placeholder{color:#b8ad97}
.tj-search-btn{flex:0 0 auto;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;font-size:15px;font-weight:600;font-family:inherit;letter-spacing:2px;padding:0 24px;cursor:pointer}
.tj-search-btn:active{opacity:.85}

/* 高级选项：一行并排 */
.tj-opts{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:12px;padding:0 2px}
.tj-opt{display:flex;align-items:center;gap:7px}
.tj-opt-label{font-size:13px;color:var(--sub);white-space:nowrap}
.tj-opt select{width:auto;min-width:92px;padding:7px 26px 7px 10px;font-size:13.5px;border-radius:7px}
.tj-opt-reset{margin-left:auto;font-size:13px;color:var(--sub)}

/* 结果统计 */
.tj-count{font-size:13px;color:var(--sub);margin-bottom:10px}
.tj-count b{color:var(--accent);font-size:15px}
.tj-empty{font-size:14px;color:var(--sub);padding:28px 0;text-align:center}

/* 手风琴列表 */
.tj-acc{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.tj-item{border-bottom:1px solid var(--line)}
.tj-item:last-child{border-bottom:none}
.tj-sum{list-style:none;cursor:pointer;padding:14px 42px 14px 15px;position:relative;transition:.15s}
.tj-sum::-webkit-details-marker{display:none}
.tj-sum:active{background:#faf6ee}
.tj-sum-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tj-title{font-size:15.5px;font-weight:700;color:var(--accent);font-family:'STKaiti','KaiTi',serif;letter-spacing:.5px}
.tj-badge{font-size:11.5px;color:var(--gold);border:1px solid var(--line2);border-radius:4px;padding:1px 7px;white-space:nowrap}
.tj-src{font-size:11.5px;color:var(--sub)}
.tj-peek{display:block;font-size:13px;color:var(--sub);margin-top:5px;line-height:1.6}
.tj-chevron{position:absolute;right:16px;top:50%;width:8px;height:8px;margin-top:-5px;border-right:1.5px solid var(--sub);border-bottom:1.5px solid var(--sub);transform:rotate(45deg);transition:.2s}
.tj-item[open] .tj-chevron{transform:rotate(-135deg);margin-top:-1px}
.tj-detail{padding:0 15px 16px}
.tj-text{font-size:15px;line-height:1.95;color:var(--fg);font-family:'Noto Serif SC','Songti SC',serif;background:#faf7f0;border-radius:8px;padding:12px 14px}
.tj-meta{font-size:12px;color:var(--sub);margin-top:9px}
.tj-link{display:inline-block;margin-top:10px;font-size:13.5px;color:var(--accent);font-weight:600}

/* 辞典卡片 */
.tj-card{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:14px 15px;margin-bottom:12px;box-shadow:var(--shadow)}
.tj-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}

/* 键值兜底 */
.tj-json{font-size:13.5px}
.tj-kv{list-style:none;margin:4px 0;padding-left:14px;border-left:1px solid var(--line)}
.tj-kv>li{margin:5px 0;line-height:1.7}
.tj-key{display:inline-block;min-width:84px;color:var(--sub);font-size:12.5px;margin-right:6px}
.tj-key::after{content:'：'}
.tj-val{color:var(--fg)}
.tj-json a{color:var(--accent);word-break:break-all}
.tj-pre{white-space:pre-wrap;word-break:break-all;font-size:12px;background:#faf7f0;padding:10px;border-radius:6px}


/* ===== 阅读页 ===== */
.rd-head{text-align:center;padding:8px 0 18px;border-bottom:1px solid var(--line);margin-bottom:16px}
.rd-title{font-size:21px;font-weight:700;color:var(--accent);font-family:'STKaiti','KaiTi',serif;letter-spacing:1px;margin:0 0 12px;line-height:1.5}
.rd-sub{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.rd-tag{font-size:12px;color:var(--sub);border:1px solid var(--line2);border-radius:20px;padding:3px 11px;background:#fdfbf6}

/* 正文（单栏） */
.rd-body{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px 20px;box-shadow:var(--shadow)}
.rd-body p{margin:0 0 1.15em;font-size:16.5px;line-height:2;color:var(--fg);font-family:'Noto Serif SC','Songti SC','STSong',serif;text-indent:2em;text-align:justify}
.rd-empty{color:var(--sub);text-align:center;text-indent:0}

/* 上/下卷导航 */
.rd-nav{display:flex;gap:10px;margin-top:18px}
.rd-nav-btn{flex:1;text-align:center;font-size:14px;padding:12px 8px;border:1px solid var(--line2);border-radius:10px;background:var(--card);color:var(--fg);transition:.15s}
.rd-nav-btn.mid{flex:0 0 auto;padding-left:16px;padding-right:16px;color:var(--sub)}
.rd-nav-btn.off{color:#c8bda6;background:#faf7f0}
.rd-nav-btn:not(.off):active{transform:translateY(1px);background:#faf6ee}
.rd-urn{font-size:12px;color:var(--sub);text-align:center;margin-top:16px}
.rd-urn a{color:var(--accent)}

/* 搜索结果操作行 */
.tj-acts{display:flex;align-items:center;gap:14px;margin-top:12px}
.tj-btn-read{font-size:13.5px;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-d));border-radius:8px;padding:8px 18px}
.tj-btn-read:active{opacity:.85}
.tj-acts .tj-link{margin-top:0}
