/* 华栋字能 · 工作台配色主题 V1.7
   五套：竹青 green（默认·品牌绿） / 宣纸 xuan（浅色米白） / 墨金 ink（深色暖墨） / 青瓷 celadon（深色青黛） / 墨智 ai（玄墨底·科技蓝/竹青作模块强调）
   V1.7（品牌口径修订）：**绿色系为华栋字能主打品牌色、全站默认色**；科技蓝只作点缀（AI / 智能化模块），
   不再作为整套主色；宣纸、墨金保留为可自由切换的备选配色。
   色彩纪律：绿承担品牌发声与核心行动（--pri），朱印红降级为告警/错误（--bad），
   鎏金作荣誉点缀，科技蓝仅出现在智能模块徽标与进度类强调。
   :root（无 data-theme 时）直接给竹青变量，避免首屏闪一下旧配色；
   已在 localStorage 里存过旧主题的账号，由 theme.js 做一次性迁移到竹青后仍可自行切回。
   青瓷色值全部取自品牌规范12色：青黛衍生深阶为底、鎏金强调、象牙白正文、朱印红主按钮、松绿/藤黄/朱红深状态；
   青黛衍生阶（#1d3539/#16292c/#24454a/#2b5156/#336066）待规范V1.1收编。
   V1.2 功能分区：新增侧栏区（--side-*，浅色主题下侧栏用重色深底，与纸色内容区拉开对比）
   与页头区（--top/--top-line，略高于内容底色形成“纸上台面”层次）；品牌标 .logo 字色恒为反白。
   用法：<html data-theme="ink|xuan|celadon">，由 theme.js 切换并记忆到 localStorage
*/

/* 品牌色彩体系规范 V1.1 · AI 科技配色（HEX 为唯一真源，不自行派生近似色）
   用途纪律：朱印红 --pri 负责品牌发声与核心行动；
   竹青/科技蓝仅用于智能化与成长激励模块。
   色值取自规范十二章速查表；浅阶底色上文字用对应深阶或玄墨（规范 6.4）。 */
:root{
  --bamboo:#18A05B;--bamboo-d:#0E7A43;--bamboo-l:#E6F4EB;--pine:#4E7A5A;
  --tech:#2B7BE4;--tech-d:#1A5FD0;--tech-l:#E8F0FC;
  /* 语义色（文字/图标）：默认主题为宣纸（浅底），按规范十一 小字/按钮用深阶 ≥4.5:1 */
  --bamboo-fg:#0E7A43;--tech-fg:#1A5FD0;
}
/* 墨金/青瓷（玄墨深底）：按规范 6.5 深底优先标准阶，并保证对比度 */
html[data-theme="ink"],html[data-theme="celadon"]{--bamboo-fg:#18A05B;--tech-fg:#2B7BE4;}
/* 科技色徽标：浅底 = 浅阶底 + 深阶字（规范 6.4）；深底 = 深阶底 + 象牙白字（规范 6.5） */
:root,html[data-theme="xuan"],html[data-theme="green"]{--bamboo-chip-bg:#E6F4EB;--bamboo-chip-fg:#0E7A43;--tech-chip-bg:#E8F0FC;--tech-chip-fg:#1A5FD0;}
html[data-theme="ink"],html[data-theme="celadon"],html[data-theme="ai"]{
  --bamboo-chip-bg:#0E7A43;--bamboo-chip-fg:#FBF8F1;--tech-chip-bg:#1A5FD0;--tech-chip-fg:#FBF8F1;}
:root,html[data-theme="green"]{
  /* 竹青（品牌默认）· V1.8
     色值全部取自《华栋字能品牌视觉色彩体系规范 V1.1》（品牌中心 2026-10-27）第十二章速查表，无自创近似色。
     品牌口径（吉总 2026-10-28）：绿色系为主打品牌色、全站默认色，科技蓝只作点缀。
     · 主色 竹青深 #0E7A43（浅底按钮白字 / 小字 / 图标，对比度 ≥4.5:1）；强调 竹青 #18A05B
     · 底色 象牙白 #FBF8F1（页面 · 顶栏） / 宣纸米白 #F6F1E5（卡片 · 内容区）
     · 文字层级 玄墨 #201E1A → 墨灰深 #3D3A34 → 墨灰中 #6E6A62；分隔线 墨灰浅 #D8D3C8
     · 功能色 成功 松绿 #4E7A5A / 提示 青黛 #2F5D62 / 警示 藤黄 #D9A441 / 错误 朱红深 #8F2620
     · 深色区（侧栏）以玄墨为底（规范 9.2），选中态 竹青深底 + 象牙白字，侧栏内绿字用标准阶
     ⚠ 规范 9.2 现文仍为「朱印红承担品牌发声与核心行动」，与本口径冲突，待品牌中心发布 V1.2 收口。
     标注「派生」者为规范未定义的次级值，按同色相明度区间推导，规范定义后立即替换。 */
  --bg:#FBF8F1;--bg2:#F6F1E5;--panel:#F6F1E5;--panel2:#FBF8F1;--inp:#FBF8F1;--inp2:#F6F1E5;
  --line:#D8D3C8;--line2:#E4E0D6;--txt:#201E1A;--mut:#6E6A62;
  --pri:#0E7A43;--acc:#18A05B;--ok:#4E7A5A;--warn:#D9A441;--bad:#8F2620;--info:#2F5D62;
  --on:#FBF8F1;--on-inv:#201E1A;--me:#E6F4EB;--me-line:#A9C3AC;--pri-fg:#0E7A43;--ok-tag:#4E7A5A;
  --warn-soft:#FAF2DF;--warn-line:#EBD9A8;--warn-fg:#6E5320;
  --ok-soft:#E6F4EB;--ok-line:#C3DDCB;--ok-fg:#0E7A43;
  --bad-soft:#F8E7E2;--bad-line:#CF9F95;--bad-fg:#8F2620;--warn-tag-fg:#201E1A;
  --hover:#F6F1E5;--mask:rgba(32,30,26,.38);
  --shadow:0 1px 2px rgba(32,30,26,.06),0 8px 22px rgba(32,30,26,.10);
  --paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23p)' opacity='0.22'/%3E%3C/svg%3E");
  --fab-bg:#FBF8F1;--fab-fg:#0E7A43;
  /* 功能分区：侧栏深色区以玄墨为底（规范 9.2），页头象牙白（规范 10.1） */
  --side:#201E1A;--side-line:#1A1815;--side-txt:#FBF8F1;--side-mut:#D8D3C8;
  --side-on:#0E7A43;--side-on-fg:#FBF8F1;--side-acc:#18A05B;
  --side-item:rgba(251,248,241,.06);--side-grp:#3D3A34;--side-grp-fg:#FBF8F1;
  --top:#FBF8F1;--top-line:#D8D3C8;
  /* 语义色：浅底用深阶（规范 6.4 / 十一） */
  --bamboo-fg:#0E7A43;--tech-fg:#1A5FD0;
}
/* ---- V1.1 科技色徽标：智能化=科技蓝 / 成长激励=竹青 ----
   仅用于 AI 智能与成长激励场景；禁止与朱印红在同一按钮或同一元素并置（规范 9.2）。 */
.tag-tech,.tag-grow{display:inline-block;padding:0 6px;border-radius:4px;font-size:11px;font-weight:700;line-height:18px;vertical-align:middle}
.tag-tech{background:var(--tech-chip-bg,#E8F0FC);color:var(--tech-chip-fg,#1A5FD0);border:1px solid var(--tech,#2B7BE4)}
.tag-grow{background:var(--bamboo-chip-bg,#E6F4EB);color:var(--bamboo-chip-fg,#0E7A43);border:1px solid var(--bamboo,#18A05B)}

html[data-theme="xuan"]{
  --bg:#F6F1E5;--bg2:#FBF8F1;--panel:#FBF8F1;--panel2:#F6F1E5;--inp:#FBF8F1;--inp2:#F6F1E5;
  --line:#D8D3C8;--line2:#E4E0D6;--txt:#201E1A;--mut:#6E6A62;
  --pri:#B5342B;--acc:#C29A5B;--ok:#4E7A5A;--warn:#D9A441;--bad:#8F2620;--info:#2F5D62;
  --on:#FBF8F1;--on-inv:#201E1A;--me:#F6F1E5;--me-line:#A9C3AC;--pri-fg:#B5342B;--ok-tag:#4E7A5A;
  --warn-soft:#f9f0d8;--warn-line:#dcc188;--warn-fg:#6d5518;
  --ok-soft:#eaf2e7;--ok-line:#a9c3ac;--ok-fg:#2f5c3d;
  --bad-soft:#F8E7E2;--bad-line:#CF9F95;--bad-fg:#8F2620;--warn-tag-fg:#201E1A;
  --hover:#f8f3e8;--mask:rgba(44,38,32,.38);
  --shadow:0 1px 2px rgba(92,74,48,.05),0 8px 22px rgba(92,74,48,.09);
  --paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23p)' opacity='0.22'/%3E%3C/svg%3E");
  --fab-bg:#FBF8F1;--fab-fg:#B5342B;
  /* 功能分区：浅色下侧栏用重色深底（导航区），页头略白于纸底（台面感） */
  --side:#262019;--side-line:#1b1611;--side-txt:#f6f0e2;--side-mut:#b8ac95;
  --side-on:#3b3226;--side-on-fg:#e5bd7d;--side-acc:#d6ab68;
  --side-item:rgba(246,240,226,.06);--side-grp:#584a33;--side-grp-fg:#f8eed7;
  --top:#faf6ec;--top-line:#ddd3bf;
}
html[data-theme="ink"]{
  --bg:#201e1a;--bg2:#1a1815;--panel:#2b2822;--panel2:#2b2822;--inp:#1a1815;--inp2:#171512;
  --line:#3a362f;--line2:#2e2a24;--txt:#fbf8f1;--mut:#d8d3c8;
  --pri:#b5342b;--acc:#c29a5b;--ok:#4e7a5a;--warn:#d9a441;--bad:#8f2620;--info:#2f5d62;
  --on:#fbf8f1;--on-inv:#201e1a;--me:#22302a;--me-line:#4e7a5a;--pri-fg:#e8806e;--ok-tag:#4e7a5a;
  --warn-soft:#3a3119;--warn-line:#6b5a24;--warn-fg:#e9d7a8;
  --ok-soft:#26332b;--ok-line:#3d5a45;--ok-fg:#bcd8c4;
  --bad-soft:#2a1f1e;--bad-line:#8f2620;--bad-fg:#fbf8f1;--warn-tag-fg:#201e1a;
  --hover:#2b2822;--mask:rgba(32,30,26,.72);--shadow:0 0 0 rgba(0,0,0,0);--paper:none;
  --fab-bg:#2b2822;--fab-fg:#c29a5b;
  /* 功能分区：侧栏导航区 / 页头区 */
  --side:#171511;--side-line:#0f0e0c;--side-txt:#ece7da;--side-mut:#a59c8c;
  --side-on:#2b2620;--side-on-fg:#dcb87e;--side-acc:#c29a5b;
  /* 侧栏三级层次：底 --side ＜ 类目 --side-item ＜ 版块条 --side-grp（版块是实色块，和类目一眼分得开） */
  --side-item:rgba(236,231,218,.055);--side-grp:#3f3527;--side-grp-fg:#f2e6cc;
  --top:#26231d;--top-line:#3a362f;
}
html[data-theme="ai"]{
  /* 墨智（AI 强调）· V1.1 合规化整改
     原「智蓝」把科技蓝设成 --pri 主行动色、蓝阶做底，违反规范 9.2
     （深色以玄墨为底；朱印红承担品牌发声与核心行动；科技色不得替代主色）。
     现：玄墨为底、朱印红为 --pri，竹青/科技蓝仅作智能化与成长激励模块的功能强调。
     所有取值均出自规范十二章速查表，无自派生近似色。 */
  --bg:#201e1a;--bg2:#201e1a;--panel:#3d3a34;--panel2:#3d3a34;--inp:#201e1a;--inp2:#201e1a;
  --line:#3d3a34;--line2:#3d3a34;--txt:#fbf8f1;--mut:#d8d3c8;
  --pri:#b5342b;--acc:#c29a5b;--ok:#4e7a5a;--warn:#d9a441;--bad:#8f2620;--info:#2f5d62;
  --on:#fbf8f1;--on-inv:#201e1a;--me:#3d3a34;--me-line:#4e7a5a;--pri-fg:#fbf8f1;--ok-tag:#4e7a5a;
  /* 状态块：底色取规范功能色/科技色本体，文字用象牙白或玄墨，保证 ≥4.5:1（规范十一） */
  --warn-soft:#d9a441;--warn-line:#d9a441;--warn-fg:#201e1a;   /* 藤黄底 + 玄墨字 */
  --ok-soft:#4e7a5a;--ok-line:#4e7a5a;--ok-fg:#fbf8f1;         /* 松绿底 + 象牙白字 */
  --bad-soft:#8f2620;--bad-line:#8f2620;--bad-fg:#fbf8f1;      /* 朱红深底 + 象牙白字 */
  --warn-tag-fg:#201e1a;
  --hover:#3d3a34;--mask:rgba(32,30,26,.72);--shadow:0 0 0 rgba(0,0,0,0);--paper:none;
  --fab-bg:#3d3a34;--fab-fg:#c29a5b;
  /* 功能分区：侧栏导航区（玄墨最深层）/ 页头区（墨灰深，略高于内容底） */
  --side:#201e1a;--side-line:#3d3a34;--side-txt:#fbf8f1;--side-mut:#d8d3c8;
  --side-on:#3d3a34;--side-on-fg:#c29a5b;--side-acc:#b5342b;
  --side-item:rgba(251,248,241,.055);--side-grp:#3d3a34;--side-grp-fg:#d8d3c8;
  --top:#3d3a34;--top-line:#3d3a34;
  /* AI 场景色（智能/成长模块强调，非主色）：标准阶·深阶·浅阶均为规范真值 */
  --bamboo:#18A05B;--bamboo-d:#0E7A43;--bamboo-l:#E6F4EB;
  --tech:#2B7BE4;--tech-d:#1A5FD0;--tech-l:#E8F0FC;
  /* 深底柔和底改取深阶（规范色），不再自造：深底区块底 = 深阶，文字用象牙白 */
  --bamboo-soft:#0E7A43;--tech-soft:#1A5FD0;
  /* 语义色：深底按规范 6.5 用标准阶 */
  --bamboo-fg:#18A05B;--tech-fg:#2B7BE4;
}
html[data-theme="celadon"]{
  --bg:#1d3539;--bg2:#16292c;--panel:#24454a;--panel2:#24454a;--inp:#16292c;--inp2:#121f22;
  --line:#336066;--line2:#2b5156;--txt:#fbf8f1;--mut:#d8d3c8;
  --pri:#b5342b;--acc:#c29a5b;--ok:#4e7a5a;--warn:#d9a441;--bad:#8f2620;--info:#2f5d62;
  --on:#fbf8f1;--on-inv:#1d3539;--me:#24454a;--me-line:#4e7a5a;--pri-fg:#e8806e;--ok-tag:#4e7a5a;
  --warn-soft:#3a3119;--warn-line:#6b5a24;--warn-fg:#e9d7a8;
  --ok-soft:#1f3329;--ok-line:#3d5a45;--ok-fg:#bcd8c4;
  --bad-soft:#2a1f1e;--bad-line:#8f2620;--bad-fg:#fbf8f1;--warn-tag-fg:#1d3539;
  --hover:#24454a;--mask:rgba(22,41,44,.78);--shadow:0 0 0 rgba(0,0,0,0);--paper:none;
  --fab-bg:#24454a;--fab-fg:#c29a5b;
  /* 功能分区：侧栏导航区 / 页头区 */
  --side:#122225;--side-line:#0c181a;--side-txt:#eef4f2;--side-mut:#93aeac;
  --side-on:#204046;--side-on-fg:#d9b276;--side-acc:#c29a5b;
  --side-item:rgba(238,244,242,.06);--side-grp:#2f6169;--side-grp-fg:#e8f4f1;
  --top:#214046;--top-line:#336066;
}
/* ---- 功能分区：导航侧栏（重色区）/ 页头（台面）/ 品牌标（恒反白） ---- */
aside{background:var(--side);border-right:1px solid var(--side-line);color:var(--side-txt)}
aside .brand{color:var(--side-txt)}
aside .brand small{color:var(--side-mut)}
aside .nav{color:var(--side-mut)}
aside .nav:hover{background:var(--side-on);color:var(--side-txt)}
aside .nav.on{background:var(--side-on);color:var(--side-on-fg);box-shadow:inset 3px 0 0 var(--side-acc)}
header{background:var(--top);border-bottom-color:var(--top-line)}
.logo{color:var(--on)}
/* ---- 通用：阴影 / 表头 ---- */
.err:empty{display:none!important}
.card,.panel,.stat,.modal,.ai-card,.ai-chat,.ai-sess,.banner{box-shadow:var(--shadow)}
th{background:var(--panel2)}
tr:hover td{background:var(--hover)}
/* ---- 宣纸主题：纸纹 + 书法感标题 ---- */
html:not([data-theme="ink"]):not([data-theme="celadon"]) body{background-color:var(--bg);background-image:var(--paper);background-attachment:fixed}
html:not([data-theme="ink"]):not([data-theme="celadon"]) .brand,
html:not([data-theme="ink"]):not([data-theme="celadon"]) .top h2,
html:not([data-theme="ink"]):not([data-theme="celadon"]) .panel h3,
html:not([data-theme="ink"]):not([data-theme="celadon"]) .card h1{font-family:"Songti SC","STSong","SimSun","Noto Serif SC",serif;letter-spacing:.5px}
html:not([data-theme="ink"]):not([data-theme="celadon"]) .card{border-color:var(--line)}
html:not([data-theme="ink"]):not([data-theme="celadon"]) .ai-msg .ai-bub{background:var(--panel2)}
html:not([data-theme="ink"]):not([data-theme="celadon"]) .btn{border:1px solid var(--pri)}
html:not([data-theme="ink"]):not([data-theme="celadon"]) th{border-bottom:1px solid var(--line)}
/* ---- 青瓷主题：冷调细节 ---- */
html[data-theme="celadon"] .ai-msg.me .ai-bub{border-color:var(--me-line)}
/* ---- 配色入口：侧栏左下角条目（V1.5 取消浮动按钮） ---- */
/* 侧栏改纵向布局，让配色条目与用户/退出一起沉到底部 */
aside{display:flex;flex-direction:column}
aside>.wb-side-nav,aside>#wbSideNav{flex:0 0 auto}
aside .wb-side-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--side-line);font-size:11.5px;line-height:1.9;color:var(--side-mut)}
aside .wb-side-foot a{color:var(--side-mut);text-decoration:none}
aside .wb-side-foot a:hover{color:var(--side-acc)}
.side-theme{display:flex;align-items:center;gap:9px;width:100%;margin:0 0 6px;padding:8px 10px;border:0;border-radius:8px;
  background:transparent;color:var(--side-mut);font-family:inherit;font-size:13px;line-height:1.5;text-align:left;
  cursor:pointer;transition:background .16s,color .16s;-webkit-appearance:none;-webkit-appearance:none;appearance:none}
.side-theme:hover,.side-theme[aria-expanded="true"]{background:var(--side-on);color:var(--side-txt)}
.side-theme .sw{display:flex;gap:3px;flex:none}
.side-theme .sw i{display:block;width:8px;height:15px;border-radius:2px}
.side-theme .tx{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-theme:focus-visible{outline:2px solid var(--side-acc);outline-offset:1px}
/* 窄屏首页侧栏收成 64px：只留三色块 */
@media (max-width:820px){
  .side-theme{justify-content:center;padding:8px 0;margin-bottom:4px}
  .side-theme .tx{display:none}
}
/* 窄屏页头兜底入口（侧栏收起时由脚本显示） */
.wb-theme-head{display:none}
/* 弹出菜单 */
.wb-tp{position:fixed;z-index:9999;width:224px;background:var(--panel);border:1px solid var(--line);
  border-radius:12px;padding:8px;box-shadow:0 12px 34px rgba(0,0,0,.32);display:none}
.wb-tp.on{display:block}
.wb-tp .t{font-size:11.5px;color:var(--mut);padding:4px 8px 6px;letter-spacing:.5px}
.wb-ti{display:flex;gap:9px;align-items:center;padding:8px;border-radius:9px;cursor:pointer}
.wb-ti:hover{background:var(--hover)}
.wb-ti.on{background:var(--hover);border:1px solid var(--acc)}
.wb-sw{display:flex;gap:3px;flex:none}
.wb-sw i{width:11px;height:22px;border-radius:3px;display:block}
.wb-ti .n{font-size:13px;color:var(--txt);font-weight:600}
.wb-ti .d{font-size:11px;color:var(--mut);margin-top:2px}

/* ===== 跨浏览器兼容补丁 compat-v1 · 2026-10-29（Edge/Chrome · Safari/WebKit 通吃）===== */
/* iOS 横屏时 Safari 会自动放大字号，锁住 */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* iOS 点击元素出现灰色高亮块 */
body{-webkit-tap-highlight-color:rgba(0,0,0,0)}
/* iOS Safari 的日期/时间控件默认高度塌陷，容易被裁掉 */
input[type="date"],input[type="time"],input[type="datetime-local"]{min-height:2.5em;line-height:1.4}
/* 老 Safari(<15.4) 不认 dvh，用 -webkit-fill-available 兜底 */
@supports not (height:100dvh){.hdz-fill{min-height:-webkit-fill-available}}
/* ===== 兼容补丁结束 ===== */
