
/* 首屏骨架屏 — 先于任何JS显示 */
.shell{position:fixed;inset:0;z-index:999999;background:#f2f4f7;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:opacity .3s}
.shell.loaded{opacity:0;pointer-events:none}
.shell .logo{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#7c3aed);display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;margin-bottom:16px;box-shadow:0 4px 20px rgba(37,99,235,0.3)}
.shell .st{font-size:18px;font-weight:700;color:#1d1d1f;margin-bottom:4px}
.shell .sub{font-size:12px;color:#86868b;margin-bottom:24px}
.shell .bar{width:120px;height:3px;border-radius:3px;background:#e5e7eb;overflow:hidden}
.shell .bar-inner{width:30%;height:100%;border-radius:3px;background:linear-gradient(90deg,#2563eb,#7c3aed);animation:loadBar 1.2s ease-in-out infinite}
[data-theme=dark] .shell{background:#030712}
[data-theme=dark] .shell .st{color:#e2e8f0}
[data-theme=dark] .shell .sub{color:#94a3b8}
@keyframes loadBar{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;outline:none}
:root{--bg:#f4efe3;--card:#fffdf8;--ink:#17221c;--ink2:#5c6b61;--ink3:#8a968c;--blue:#1f5a43;--green:#2f8a5b;--red:#d64545;--orange:#b6643c;--purple:#8a5a2b;--gold:#c4a85a;--border:#e0d5c0;--shadow:0 1px 4px rgba(31,90,67,0.06);--shadow-lg:0 4px 20px rgba(31,90,67,0.08);--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--tab-h:58px;--header-h:50px;--grad1:linear-gradient(135deg,#1f5a43,#2f8a5b);--grad2:linear-gradient(135deg,#2f8a5b,#3ba97a);--grad3:linear-gradient(135deg,#b6643c,#d68a55);--grad4:linear-gradient(135deg,#8a5a2b,#c4a85a)}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;overflow:hidden;height:100vh;height:100dvh;width:100vw}
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--card);border-bottom:1px solid var(--border);padding:calc(8px + var(--safe-t)) 16px 6px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}
.header-title{font-size:18px;font-weight:700;background:var(--grad1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.header-sub{font-size:10px;color:var(--ink2);margin-top:1px}
.header-right{display:flex;gap:6px}
.header-btn{width:32px;height:32px;border-radius:50%;border:none;background:#f3f4f6;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s}
.header-btn:active{transform:scale(.88)}
.page{display:none;position:fixed;top:calc(var(--header-h) + var(--safe-t));left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b) + 12px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 10px;animation:pfade .2s ease}
#p-home{bottom:calc(var(--tab-h) + var(--safe-b));padding:0 0 4px}
#p-chat{padding:0}
@keyframes sk-pulse{0%,100%{opacity:.3}50%{opacity:.8}}
.sk-pulse{animation:sk-pulse 1.6s ease-in-out infinite;}
.page.active{display:block}
.tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--card);border-top:1px solid var(--border);display:flex;padding-bottom:var(--safe-b);height:calc(var(--tab-h) + var(--safe-b));box-shadow:0 -2px 8px rgba(0,0,0,0.04)}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 0;cursor:pointer;color:var(--blue);font-size:9px;border:none;background:none;position:relative;transition:color .15s}
.tab-item .ic{font-size:21px;transition:transform .15s}
.tab-item.active{color:var(--blue);font-weight:600}
.tab-item.active .ic{transform:scale(1.12)}
.tab-chat-ic{display:inline-flex;align-items:center;justify-content:center;font-size:21px;transition:transform .15s}
.tab-badge{position:absolute;top:2px;right:calc(50% - 20px);background:var(--red);color:#fff;font-size:8px;padding:1px 5px;border-radius:8px;font-weight:700;min-width:16px;text-align:center;box-shadow:0 1px 3px rgba(239,68,68,0.3)}
/* 通用 */
.section-title{font-size:12px;font-weight:600;color:var(--ink2);margin:12px 0 8px;padding-left:2px}
.stats-row{display:flex;gap:8px;margin-bottom:8px}
.stat-card{flex:1;background:var(--card);border-radius:10px;padding:12px 10px;text-align:center;box-shadow:var(--shadow)}
.stat-card .num{font-size:22px;font-weight:800;color:var(--ink)}
.stat-card .label{font-size:10px;color:var(--ink2);margin-top:2px}
.func-grid{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 4px;justify-content:center}
.func-grid .item{width:calc(25% - 10px);flex:none;min-width:0;background:var(--card);border-radius:14px;padding:16px 2px;text-align:center;box-shadow:var(--shadow);cursor:pointer;border:none;font-family:inherit;transition:transform .15s,box-shadow .2s}
.func-grid .item:active{transform:scale(.93)}
.func-grid .item:hover{box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.func-grid .item .ic{display:block;width:48px;height:48px;line-height:48px;border-radius:14px;margin:0 auto 6px;color:#fff;font-size:22px;box-shadow:0 3px 8px rgba(0,0,0,0.12)}
.func-grid .item .nm{font-size:12px;color:var(--ink);font-weight:600;line-height:1.3;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
/* 功能分类卡片 — 硬朗块状风格 */
.vip-card-grid button.item{background:#fff!important;border:1px solid #666!important;border-radius:4px!important;padding:4px 4px!important;box-shadow:none!important;margin:0!important;width:100%!important}
.vip-card-grid button.item .ic{display:flex;width:44px;height:44px;line-height:44px;border-radius:12px;font-size:20px;margin:0 auto 5px;box-shadow:0 2px 6px rgba(0,0,0,0.12);align-items:center;justify-content:center}
.vip-card-grid button.item .ic svg{display:block;flex-shrink:0}
.vip-card-grid button.item .nm{font-size:12px;color:var(--ink);font-weight:600}
/* 需求卡片 */
.demand-card{background:var(--card);border-radius:12px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow);position:relative}
.demand-card .hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.demand-card .hdr .tag{font-size:10px;padding:3px 8px;border-radius:6px;font-weight:600;background:#eef2ff;color:var(--blue)}
.demand-card .hdr .time{font-size:10px;color:var(--ink3)}
.demand-card .txt{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px;line-height:1.5}
.demand-card .loc{font-size:11px;color:var(--ink2);margin-bottom:4px}
.demand-card .loc .ic{font-size:10px}
.demand-card .contact{font-size:11px;color:var(--ink2);background:#f9fafb;border-radius:8px;padding:8px 10px;margin-top:6px;display:flex;justify-content:space-between;align-items:center}
.demand-card .contact .phone{font-weight:700;color:var(--blue);font-size:13px}
.demand-card .status-badge{position:absolute;top:10px;right:10px;font-size:9px;padding:2px 8px;border-radius:10px;font-weight:600}
.demand-card .status-badge.open{background:#dcfce7;color:#16a34a}
.demand-card .status-badge.closed{background:#f3f4f6;color:#9ca3af}
.demand-form textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:12px;font-size:14px;color:var(--ink);background:var(--card);resize:vertical;min-height:100px;font-family:inherit;line-height:1.6}
.demand-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,0.1)}
.demand-form .loc-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f9fafb;border-radius:10px;font-size:12px;color:var(--ink2);margin:8px 0}
.demand-form .loc-bar .dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse 1.5s infinite}
@keyframes pulse{0%{opacity:1}50%{opacity:.4}100%{opacity:1}}
.demand-empty{text-align:center;padding:40px 0;color:var(--ink3)}
.demand-empty .eic{font-size:48px;margin-bottom:10px}
.btn{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;min-height:40px;font-family:inherit}
.btn-p{background:var(--blue);color:#fff}
.btn-o{background:var(--card);border:1px solid var(--border);color:var(--ink)}
.btn-sm{padding:6px 12px;font-size:11px;min-height:30px;border-radius:6px}
.search-box{display:flex;gap:6px;margin-bottom:10px}
.search-box input{flex:1;border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--ink);background:var(--card);min-height:40px}
.search-box input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,0.1)}
/* 聊天 - 脑屏版风格增强 */
#p-chat .chat-w{display:flex;flex-direction:column;height:100%;padding:0}
.msg-w{flex:1;overflow-y:auto;padding:10px 0;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.msg-w::-webkit-scrollbar{width:5px}
.msg-w::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:999px}
.msg{max-width:85%;padding:8px 14px;border-radius:12px;font-size:14px;line-height:1.6;word-break:break-word;position:relative}
.msg-label{display:block;margin-bottom:4px;font-family:ui-monospace,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.msg-u{align-self:flex-end;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border-bottom-right-radius:3px;box-shadow:0 2px 8px rgba(37,99,235,0.25)}
.msg-u .msg-label{color:rgba(255,255,255,.75);text-align:right}
.msg-a{align-self:flex-start;background:var(--card);border:1px solid var(--border);border-bottom-left-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.msg-a .msg-label{color:var(--ink3)}
.msg-body{font-size:14px;line-height:1.6}
.msg-body p{margin:0;white-space:normal}
.msg-body p+p{margin-top:.55em}
.msg-body h1,.msg-body h2,.msg-body h3,.msg-body h4,.msg-body h5,.msg-body h6{margin:0;line-height:1.35;font-weight:700}
.msg-body h1{font-size:1.2em}.msg-body h2{font-size:1.15em}.msg-body h3{font-size:1.1em}
.msg-body h4,.msg-body h5,.msg-body h6{font-size:1em}
.msg-body ul,.msg-body ol{margin:0;padding-left:1.3em}
.msg-body li+li{margin-top:.2em}
.msg-body blockquote{margin:0;padding-left:.8em;border-left:2px solid var(--border);color:var(--ink2)}
.msg-body code{padding:.08em .36em;border-radius:6px;background:#f3f4f6;font-family:ui-monospace,monospace;font-size:.92em;color:var(--ink)}
.msg-body pre{margin:0;padding:.7em .85em;border-radius:8px;background:#f3f4f6;border:1px solid var(--border);overflow-x:auto;font-size:13px}
.msg-body pre code{padding:0;background:transparent;border-radius:0}
.msg-body a{color:var(--blue);text-decoration:underline;text-underline-offset:.16em}
.msg-body strong{font-weight:700}
.msg-body em{font-style:italic}
.msg-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.speak-btn{background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:14px;padding:2px 6px;color:var(--ink2);transition:all .15s}
.speak-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.speak-btn:active{opacity:.7}
.msg-action-btn{display:inline-flex;gap:4px;padding:4px 10px;font-size:11px;border-radius:6px;background:#eef2ff;color:var(--blue);border:1px solid #dbeafe;cursor:pointer;align-items:center;transition:background .15s;font-family:inherit}
.msg-action-btn:active{background:#dbeafe}
.msg-i{display:flex;gap:6px;padding:10px 6px 6px;background:var(--bg);flex-shrink:0;border-top:1px solid var(--border)}
.msg-i input{flex:1;border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:15px;color:var(--ink);background:var(--card);min-height:42px;transition:border-color .2s}
.msg-i input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.msg-i input::placeholder{color:var(--ink3)}
.msg-i button{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;border:none;font-size:16px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .15s}
.msg-i button:active{transform:scale(.9)}
#chatSend{font-size:15px;box-shadow:0 2px 6px rgba(37,99,235,.25)}
#voiceBtn{background:transparent;color:var(--ink2);font-size:18px;width:36px;height:36px}
#voiceBtn:active{background:#f3f4f6}
.chat-suggestions{display:flex;flex-wrap:wrap;gap:4px;padding:2px 8px 4px;flex-shrink:0}
.chat-chip{display:inline-block;padding:4px 10px;font-size:10px;border-radius:12px;background:#f0f4ff;color:#2563eb;border:1px solid #dbeafe;cursor:pointer;transition:all .15s;white-space:nowrap}
.chat-chip:active{background:#dbeafe}
/* 工具头部 */
.tool-h{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-shrink:0}
.tool-h .bk{width:34px;height:34px;border-radius:50%;border:none;background:#f3f4f6;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tool-h .tt{font-size:16px;font-weight:700}
.tool-b{flex:1;overflow-y:auto}
.tool-w{display:flex;flex-direction:column;height:100%}
/* 列表 */
.lst{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #f3f4f6}
.lst .ic{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;background:#f3f4f6;flex-shrink:0}
.lst .nf{flex:1;min-width:0}
.lst .nf .t{font-size:13px;font-weight:600;color:var(--ink)}
.lst .nf .s{font-size:11px;color:var(--ink2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 表单 */
.inp-w{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.inp-w input{flex:1;min-width:100px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--ink);background:var(--card);min-height:38px}
.inp-w select{border:1px solid var(--border);border-radius:8px;padding:8px 6px;font-size:12px;background:var(--card);color:var(--ink);min-height:38px}
.inp-w button{padding:8px 14px;border:none;border-radius:8px;background:var(--blue);color:#fff;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}
/* 卡片网格 */
.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.card-grid .cd{background:var(--card);border-radius:10px;padding:12px;box-shadow:var(--shadow)}
.card-grid .cd .lb{font-size:11px;color:var(--ink2)}
.card-grid .cd .vl{font-size:18px;font-weight:700;color:var(--ink);margin-top:2px}
.card-grid .cd .un{font-size:9px;color:var(--ink3)}
.loading,.empty{text-align:center;padding:30px 0;color:var(--ink3);font-size:13px}
.empty .eic{font-size:36px;margin-bottom:6px}
.tag{display:inline-flex;padding:4px 10px;border-radius:14px;font-size:11px;background:#eef2ff;color:var(--blue);cursor:pointer;border:none;margin:2px}
[data-theme=dark]{--bg:#0d1a14;--card:#14241c;--ink:#e8f0ea;--ink2:#9db3a6;--ink3:#6b8274;--blue:#4f9d7a;--green:#3ba97a;--red:#e07070;--orange:#d68a55;--purple:#c4a85a;--gold:#c4a85a;--border:#25402f;--shadow:0 1px 3px rgba(0,0,0,0.3);--grad1:linear-gradient(135deg,#2f8a5b,#3ba97a);--grad2:linear-gradient(135deg,#3ba97a,#4fc69a);--grad3:linear-gradient(135deg,#b6643c,#d68a55);--grad4:linear-gradient(135deg,#8a5a2b,#c4a85a)}
[data-theme=dark] .header-btn{background:#1d3327}
[data-theme=dark] .tag{background:rgba(79,157,122,.15);color:var(--blue)}
[data-theme=dark] .func-grid .item,.stat-card,.demand-card{background:var(--card);border-color:var(--border)}
[data-theme=dark] input,textarea{background:var(--card);border-color:var(--border);color:var(--ink)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:480px){.func-grid{grid-template-columns:repeat(5,1fr)}.card-grid{grid-template-columns:repeat(3,1fr)}}
/* 添加到主屏幕引导 */
.guide-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:32px;animation:fadeIn .25s ease}
.guide-overlay.show{display:flex}
.guide-box{background:var(--card);border-radius:16px;padding:28px 24px 20px;max-width:320px;width:100%;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,0.2);animation:popIn .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.guide-box .ic{font-size:48px;margin-bottom:8px}
.guide-box h3{font-size:16px;font-weight:700;margin-bottom:6px}
.guide-box p{font-size:12px;color:var(--ink2);line-height:1.6;margin-bottom:12px}
.guide-box .step{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 0;border-bottom:1px solid #f3f4f6;font-size:12px}
.guide-box .step:last-child{border:none}
.guide-box .step .num{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.guide-box .btn-close{margin-top:12px;padding:10px 0;width:100%;border:none;border-radius:10px;background:var(--blue);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
.guide-box .btn-close:active{opacity:.8}
.guide-banner{position:fixed;bottom:calc(68px + var(--safe-b));left:12px;right:12px;z-index:50;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:12px;padding:12px 14px;display:none;align-items:center;gap:10px;box-shadow:0 4px 20px rgba(37,99,235,0.3);animation:slideUp .3s ease}
.guide-banner.show{display:flex}
@keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
.guide-banner .txt{flex:1;color:#fff;font-size:12px;font-weight:500;line-height:1.4}
.guide-banner .txt strong{font-size:13px}
.guide-banner .btn-act{padding:7px 14px;border:none;border-radius:8px;background:rgba(255,255,255,0.2);color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
/* 微信/小程序内隐藏 A2HS 引导（无效且挡输入框） */
.micromessenger #guideBanner,.micromessenger #installBtn{display:none!important}
/* ═══ AI 生成显著标识（微信审核要求：醒目置顶）═══ */
.ai-notice-bar{margin:8px 12px 0;padding:9px 12px;border-radius:8px;background:#fff1f0;border:1.5px solid #ff4d4f;color:#cf1322;font-size:13px;text-align:center;font-weight:700;line-height:1.5}
:root[data-theme="dark"] .ai-notice-bar{background:rgba(255,77,79,.16);border-color:#ff4d4f;color:#ff7875}
.ai-gen-tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;background:#fff1f0;border:1px solid #ffa39e;color:#cf1322;font-size:10px;font-weight:700;margin-right:6px}
:root[data-theme="dark"] .ai-gen-tag{background:rgba(255,77,79,.16);border-color:#ff4d4f;color:#ff7875}
/* ═══ 本地知识库 / AI 自由模式切换 ═══ */
.kb-mode-bar{display:flex;align-items:center;gap:8px;padding:6px 12px 0}
.kb-mode-btn{padding:5px 11px;border-radius:16px;border:none;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:4px}
.kb-mode-kb{background:rgba(31,90,67,.1);color:var(--forest);border:1px solid rgba(31,90,67,.25)}
.kb-mode-ai{background:rgba(139,92,246,.1);color:#7c3aed;border:1px solid rgba(139,92,246,.25)}
.kb-mode-hint{font-size:11px;color:var(--ink3)}
/* ═══ 278问面板 CSS ═══ */
#faqPanel{border-top:1px solid var(--border);background:var(--bg2);max-height:300px;overflow:hidden;transition:max-height .25s}
#faqPanel.collapsed{max-height:34px}
.faq-toggle{padding:6px 12px;font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer;display:flex;align-items:center;gap:4px;user-select:none}
.faq-toggle:hover{background:var(--hover)}
#faqArrow{font-size:10px;transition:transform .2s}
#faqPanel:not(.collapsed) #faqArrow{transform:rotate(90deg)}
.faq-tabs{display:flex;flex-wrap:wrap;gap:3px;padding:0 8px 4px}
.faq-tab{padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;background:var(--bg3);color:var(--ink2);cursor:pointer;border:none;transition:all .15s}
.faq-tab.active{background:var(--accent);color:#fff}
.faq-items{display:flex;flex-wrap:wrap;gap:4px;padding:2px 8px 8px;max-height:260px;overflow-y:auto}
.faq-chip{padding:4px 10px;border-radius:12px;font-size:11px;background:var(--bg3);color:var(--ink1);cursor:pointer;border:1px solid var(--border);transition:all .12s;white-space:normal;line-height:1.4;text-align:left}
.faq-chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.faq-chip:active{transform:scale(.95)}

/* ═══ H5 深色模式调色板（2026-08-15 改品牌森林绿暗色）═══ */
[data-theme="dark"] {
  --bg: #0d1a14 !important;
  --card: #14241c !important;
  --ink: #e8f0ea !important;
  --ink2: #9db3a6 !important;
  --ink3: #6b8274 !important;
  --blue: #4f9d7a !important;
  --green: #3ba97a !important;
  --orange: #d68a55 !important;
  --red: #e07070 !important;
  --purple: #c4a85a !important;
  --gold: #c4a85a !important;
  --border: #25402f !important;
  --shadow: 0 1px 4px rgba(0,0,0,0.4) !important;
  --shadow-lg: 0 4px 20px rgba(0,0,0,0.5) !important;
  --grad1: linear-gradient(135deg,#2f8a5b,#3ba97a) !important;
  --grad2: linear-gradient(135deg,#3ba97a,#4fc69a) !important;
  --grad3: linear-gradient(135deg,#b6643c,#d68a55) !important;
  --grad4: linear-gradient(135deg,#8a5a2b,#c4a85a) !important;
  background: #0d1a14 !important;
  color: #e8f0ea !important;
}
[data-theme="dark"] body {
  background: #0d1a14 !important;
  color: #e5e7eb !important;
}
[data-theme="dark"] .item,
[data-theme="dark"] .nm { color: var(--ink) !important; }
[data-theme="dark"] #installBtn,
[data-theme="dark"] #shareBtn,
[data-theme="dark"] #themeBtn,
[data-theme="dark"] .header-btn { color: var(--ink) !important; }

/* ═══ 【2026-08-15】品牌风格增强 ═══ */
/* 头部：暖纸 + 森林绿标题 + 底部细线 */
.header{background:var(--card);border-bottom:1px solid rgba(182,100,60,0.15)}
.header-title{background:var(--grad1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.header-sub{color:var(--ink2)}
.header-btn{background:rgba(31,90,67,0.06);color:var(--blue)}
/* 底部导航：激活项森林绿 + 顶部品牌金线 */
.tab-bar{border-top:1px solid rgba(182,100,60,0.15);background:var(--card)}
.tab-item.active{color:var(--blue)}
.tab-item.active::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:3px;border-radius:0 0 3px 3px;background:var(--grad1)}
/* 统计卡品牌化 */
.stat-card{background:var(--card);border:1px solid rgba(31,90,67,0.08);border-radius:12px}
.stat-card .num{color:var(--blue)}
/* 快速标签 hover */
.tag:active{transform:scale(.95)}
/* 功能入口图标：圆角 + 品牌投影 */
.func-grid .item{border:1px solid rgba(31,90,67,0.06);border-radius:14px}
.func-grid .item .ic{border-radius:12px;box-shadow:0 2px 8px rgba(31,90,67,0.15)}
/* 卡片圆角统一 12px，暖纸投影 */
.demand-card,.lst,.cd{border-radius:12px;border:1px solid rgba(31,90,67,0.06)}

/* 工具页品牌化 */
.tool-h .bk{background:rgba(31,90,67,0.08);color:var(--blue)}
.tool-h .tt{background:var(--grad1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}
.tool-h .tt svg{vertical-align:-3px;margin-right:2px}
/* 按钮品牌化 */
.btn-p{background:var(--grad1)}
.btn-o{border-color:rgba(31,90,67,0.2);color:var(--blue)}
/* 输入框焦点品牌色 */
input:focus,textarea:focus{border-color:var(--blue)!important;box-shadow:0 0 0 2px rgba(31,90,67,.1)!important}
/* 卡片/列表品牌边框 */
.lst{border:1px solid rgba(31,90,67,0.08)}
.nf .t{color:var(--blue);font-weight:600}
/* 骨架屏品牌色 */
.shell{background:#f4efe3}
.shell .logo{background:linear-gradient(135deg,#1f5a43,#2f8a5b)}
.shell .st{color:#17221c}

/* ═══ 【2026-08-15】聊天页品牌化（去蓝残留）═══ */
.msg-i input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(31,90,67,.12)}
.msg-i button{background:var(--grad1)}
#chatSend{box-shadow:0 2px 6px rgba(31,90,67,.25)}
.msg-action-btn{background:#e3ece4;color:var(--blue);border:1px solid #cfe0d5}
.msg-action-btn:active{background:#cfe0d5}
.chat-suggestions .tag{background:#e3ece4;color:var(--blue)}
/* 商机 tab 品牌化 */
#p-data .stat-card{background:var(--card)}
.btn-p{background:var(--grad1)}
/* 全局滚动条品牌 */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:rgba(31,90,67,.25);border-radius:2px}
::-webkit-scrollbar-track{background:transparent}

/* ═══ 【2026-08-15】聊天页升级 ═══ */
.msg{box-shadow:0 1px 6px rgba(31,90,67,.08)}
/* 用户气泡：品牌绿渐变 + 圆角尾 */
.msg-u{background:linear-gradient(135deg,#1f5a43,#2f8a5b);color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 10px rgba(31,90,67,.25)}
.msg-u .msg-label{color:rgba(255,255,255,.7)}
/* AI 消息：头像 + 卡片 */
.msg-a{background:var(--card);border:1px solid rgba(31,90,67,.12);border-bottom-left-radius:4px;box-shadow:0 2px 10px rgba(31,90,67,.06)}
.msg-a .msg-label{color:var(--blue);font-weight:700}
/* AI 思考动画（打字点） */
.msg-body.thinking::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-left:3px;vertical-align:middle;animation:nvBlink 1s ease-in-out infinite}
@keyframes nvBlink{0%,100%{opacity:.2}50%{opacity:1}}
/* 聊天建议标签品牌化 */
.chat-suggestions .tag{background:#e3ece4;color:var(--blue);border:none}
/* 消息进入动画 */
.msg{animation:msgIn .25s ease}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ═══ 【2026-08-15】P0 内联样式收敛：常用工具类 ═══ */
.inp{width:100%;min-height:36px;font-size:13px;border:1px solid var(--border);border-radius:8px;padding:0 10px;color:var(--ink);background:var(--card);box-sizing:border-box}
textarea.inp{min-height:70px;padding:8px 10px;resize:vertical;line-height:1.6}
.inp:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(31,90,67,.1)}
.gap6{display:flex;gap:6px}
.gap8{display:flex;gap:8px}
.gap10{display:flex;gap:10px}
.mb6{margin-bottom:6px}.mb8{margin-bottom:8px}.mb10{margin-bottom:10px}.mb12{margin-bottom:12px}
.mt4{margin-top:4px}.mt6{margin-top:6px}.mt8{margin-top:8px}.mt10{margin-top:10px}
.ink3{color:var(--ink3)}
.ink2{color:var(--ink2)}
.card-box{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px}
.small{font-size:11px}
.xsmall{font-size:10px}
.bold{font-weight:700}
.flex1{flex:1}
.btn-w{width:100%}

/* ═══ 深色模式：分类卡片/文字适配 ═══ */
[data-theme=dark] .vip-card-grid button.item{background:#1d3327!important;border-color:#25402f!important}
[data-theme=dark] .vip-card-grid button.item .nm{color:var(--ink)!important}
[data-theme=dark] .func-grid .item .nm{color:var(--ink)}

/* ═══ 无障碍（P2-12）：键盘焦点可见性 + 屏幕阅读器 ═══ */
:focus-visible {
  outline: 2px solid var(--copper, #b6643c);
  outline-offset: 2px;
  border-radius: 4px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--copper, #b6643c);
  outline-offset: 2px;
}
:focus:not(:focus-visible) {
  outline: none;
}
.blm-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
