/* ============================================================
   心溯心理 App · xl-shell.css  v4「Calm UI」
   设计令牌：
   --xl-bg 温暖米白底  --xl-card 白卡  --xl-line 浅描边
   --xl-ink 墨色文字  --xl-sub 次级文字  --xl-brand 墨绿主色
   圆角：卡片16 / 按钮12 / 小元素8；间距 4 的倍数
   ============================================================ */
:root{
  --xl-bg:#F7F6F2; --xl-card:#FFFFFF; --xl-line:#ECEAE2; --xl-line2:#F0EFE9;
  --xl-ink:#16211D; --xl-sub:#77827C; --xl-faint:#9AA39D;
  --xl-brand:#123C33; --xl-brand2:#1E5C4D; --xl-accent:#2E9E7F;
  --xl-warn:#B23A33; --xl-warn-bg:#FBEDEB; --xl-warn-line:#EFCBC6;
}
html,body.xl-app{background:var(--xl-bg);color:var(--xl-ink);}
body.xl-app{padding-top:0!important;padding-bottom:calc(66px + env(safe-area-inset-bottom,0px));min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;}

/* 隐藏 Web 站点框架（App 内用自有框架） */
body.xl-app #siteNav,
body.xl-app #siteFooter,
body.xl-app #appTabbar,
body.xl-app .ps-hrball,
body.xl-app .marquee,
body.xl-app .crumb,
body.xl-app #qMascot,
body.xl-app .ann-bar{display:none!important;}
body.xl-app .wrap{max-width:720px;margin:0 auto;padding:0 16px;}
body.xl-app .section,
body.xl-app .section-tight{padding:20px 0 30px;}

/* 心理页在 App 内收紧 */
body.xl-app .ps-hero{padding:20px 18px;border-radius:16px;margin-bottom:16px;
  background:#FFFFFF;border:1px solid var(--xl-line);border-left:4px solid var(--xl-brand);
  box-shadow:0 1px 4px rgba(20,33,29,.04);position:relative;overflow:hidden;}
/* App 内 hero 改为白卡墨字，与首页 Calm UI 统一（覆盖站点深绿渐变） */
body.xl-app .ps-hero::before{display:none;}
body.xl-app .ps-hero h1{color:var(--xl-ink);font-size:20px;}
body.xl-app .ps-hero h1 small{color:var(--xl-faint);letter-spacing:.12em;}
body.xl-app .ps-hero p{color:var(--xl-sub);}
body.xl-app .ps-hero .psh-badge{background:#EEF3EF;border:1px solid #DEE7E0;color:var(--xl-brand2);}
body.xl-app .ps-hero .psh-actions button,
body.xl-app .ps-hero .psh-actions a{border-radius:10px;}
body.xl-app .ps-hero h1{font-size:21px;}
body.xl-app .psh-actions{flex-direction:column;align-items:stretch;}
body.xl-app .psh-actions .psh-go{text-align:center;}
body.xl-app .psi-banner{padding:18px;flex-direction:column;align-items:stretch;gap:14px;}
body.xl-app .psi-banner .psib-go{width:100%;}
body.xl-app .ps-core{grid-template-columns:1fr 1fr;gap:10px;}
body.xl-app .ps-core-card{padding:15px 13px;}
body.xl-app .ps-fold>summary{padding:14px 15px;font-size:14.5px;border-radius:14px;}
@media(max-width:420px){ body.xl-app .ps-core{grid-template-columns:1fr;} }

/* ============================================================
   首页 Calm UI（xinli-app.html）
   ============================================================ */
.xl-home .xl-scroll{max-width:720px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 26px;}

/* 顶栏 */
.h-top{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 14px;}
.h-greet{display:flex;flex-direction:column;gap:2px;min-width:0;}
.h-greet b{font-size:21px;font-weight:800;color:var(--xl-ink);letter-spacing:.01em;line-height:1.25;}
.h-greet span{font-size:12px;color:var(--xl-faint);font-weight:600;}
.h-top-r{display:flex;align-items:center;gap:10px;}
.h-mark{width:34px;height:34px;border-radius:10px;object-fit:cover;box-shadow:0 2px 8px rgba(18,60,51,.18);}
.h-iconbtn{width:40px;height:40px;border-radius:12px;border:1px solid var(--xl-line);background:var(--xl-card);
  display:grid;place-items:center;color:var(--xl-brand);cursor:pointer;box-shadow:0 1px 3px rgba(20,33,29,.05);}
.h-iconbtn svg{width:20px;height:20px;}
.h-iconbtn:active{background:#F2F5F2;}

/* 今日状态卡 */
.h-today{display:flex;align-items:center;gap:14px;background:var(--xl-card);border:1px solid var(--xl-line);
  border-left:4px solid var(--xl-brand);border-radius:16px;padding:17px 16px;cursor:pointer;
  font-family:inherit;text-align:left;width:100%;box-shadow:0 1px 4px rgba(20,33,29,.04);transition:transform .15s ease,box-shadow .15s ease;}
.h-today:active{transform:scale(.992);box-shadow:0 3px 12px rgba(18,60,51,.08);}
.ht-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.ht-kicker{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--xl-accent);}
.ht-title{font-size:16.5px;font-weight:800;color:var(--xl-ink);line-height:1.35;}
.ht-sub{font-size:11.5px;color:var(--xl-sub);line-height:1.55;}
.ht-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;margin-top:3px;
  background:var(--xl-brand);color:#fff;font-size:12.5px;font-weight:800;border:0;border-radius:10px;
  padding:8px 14px;cursor:pointer;font-family:inherit;}
.ht-btn svg{width:14px;height:14px;}
.ht-btn:active{background:var(--xl-brand2);}
.ht-visual{flex:none;}
.ht-ring{position:relative;width:64px;height:64px;border-radius:50%;
  background:#ECEAE2;display:grid;place-items:center;}
.ht-ring i{position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(var(--xl-brand) 0deg,#ECEAE2 0deg);
  -webkit-mask:radial-gradient(circle,transparent 56%,#000 58%);mask:radial-gradient(circle,transparent 56%,#000 58%);}
.ht-ring b{position:relative;font-size:13px;font-weight:800;color:var(--xl-brand);letter-spacing:.02em;}

/* 两个主功能 */
.h-main2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.h-mcard{position:relative;background:var(--xl-card);border:1px solid var(--xl-line);border-radius:16px;
  padding:15px 14px 14px;text-align:left;font-family:inherit;cursor:pointer;color:var(--xl-ink);
  display:flex;flex-direction:column;gap:4px;min-height:104px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;}
.h-mcard:hover{border-color:#CBD9D1;box-shadow:0 4px 14px rgba(18,60,51,.07);}
.h-mcard:active{transform:scale(.985);}
.hm-ic{font-size:24px;line-height:1;margin-bottom:3px;}
.h-mcard b{font-size:15px;font-weight:800;}
.h-mcard em{font-size:11px;color:var(--xl-sub);font-style:normal;line-height:1.45;}
.hm-go{position:absolute;right:12px;top:12px;color:#B6C0BA;font-size:18px;font-style:normal;font-weight:700;}

/* 区块 */
.h-block{margin-top:22px;}
.h-blk-h{display:flex;align-items:baseline;justify-content:space-between;margin:0 2px 10px;}
.h-blk-h b{font-size:15px;font-weight:800;color:var(--xl-ink);}
.h-blk-h span{font-size:11px;color:var(--xl-faint);font-weight:600;}
.h-more{font-size:12px;color:var(--xl-brand2);text-decoration:none;font-weight:700;}

/* 心情打卡 */
.h-moods{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;background:var(--xl-card);
  border:1px solid var(--xl-line);border-radius:16px;padding:13px 8px;}
.h-mood{border:0;background:transparent;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;
  align-items:center;gap:5px;padding:5px 0;border-radius:10px;}
.h-mood:active{background:#F1F4F1;}
.h-mood span{font-size:26px;line-height:1;display:inline-block;transition:transform .18s cubic-bezier(.2,1.4,.4,1);}
.h-mood:hover span{transform:translateY(-2px) scale(1.12);}
.h-mood em{font-style:normal;font-size:10.5px;color:var(--xl-sub);font-weight:600;}
.h-mood.done span{animation:hPop .35s;}
@keyframes hPop{0%{transform:scale(1)}50%{transform:scale(1.28)}100%{transform:scale(1)}}

/* 工具胶囊 */
.h-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;}
.h-chips::-webkit-scrollbar{display:none;}
.h-chips a,.h-chips button{flex:none;display:inline-flex;align-items:center;gap:6px;background:var(--xl-card);
  border:1px solid var(--xl-line);border-radius:999px;padding:9px 15px;font-size:13px;font-weight:700;
  color:var(--xl-ink);font-family:inherit;cursor:pointer;text-decoration:none;transition:transform .14s ease,border-color .14s ease;}
.h-chips a:active,.h-chips button:active{transform:scale(.95);border-color:#B9CBC2;}
.h-chips span{font-size:15px;line-height:1;}

/* 课程/曲线列表 */
.h-course{display:flex;align-items:center;gap:13px;width:100%;background:var(--xl-card);border:1px solid var(--xl-line);
  border-radius:14px;padding:13px 14px;margin-bottom:9px;cursor:pointer;font-family:inherit;text-align:left;color:var(--xl-ink);}
.h-course:active{background:#FBFCFA;}
.hc-cover{width:42px;height:42px;border-radius:11px;background:#EEF3EF;display:grid;place-items:center;
  font-size:21px;flex:none;}
.hc-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.hc-tx b{font-size:14px;font-weight:800;}
.hc-tx em{font-size:11.5px;color:var(--xl-sub);font-style:normal;line-height:1.5;}
.hc-go{color:#B6C0BA;font-size:19px;font-weight:700;flex:none;}

/* 危机援助（克制） */
.h-crisis{display:flex;align-items:center;gap:11px;margin-top:22px;background:var(--xl-warn-bg);
  border:1px solid var(--xl-warn-line);border-radius:14px;padding:13px 15px;text-decoration:none;}
.h-crisis:active{opacity:.94;}
.hc2-ic{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;
  color:var(--xl-warn);flex:none;}
.hc2-ic svg{width:17px;height:17px;}
.hc2-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.hc2-tx b{font-size:13.5px;color:#8A2B26;font-weight:800;}
.hc2-tx em{font-size:11px;color:#A65D58;font-style:normal;line-height:1.5;}
.hc2-go{flex:none;background:var(--xl-warn);color:#fff;border-radius:999px;font-size:12px;font-weight:800;padding:6px 14px;}

/* 双 App 互通 */
.h-sister{display:flex;align-items:center;gap:11px;width:100%;margin-top:10px;background:transparent;
  border:1px dashed #D4D8CF;border-radius:14px;padding:12px 14px;cursor:pointer;font-family:inherit;text-align:left;color:var(--xl-ink);}
.h-sister:active{background:#FBFCFA;}
.hs-ic{font-size:20px;flex:none;width:34px;text-align:center;}
.hs-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.hs-tx b{font-size:13px;font-weight:800;}
.hs-tx em{font-size:11px;color:var(--xl-faint);font-style:normal;line-height:1.5;}
.hs-go{color:#B6C0BA;font-size:18px;font-weight:700;flex:none;}

.h-foot{text-align:center;font-size:10.5px;color:var(--xl-faint);margin:18px 6px 0;line-height:1.8;}

/* 心情打卡 toast */
.xl-toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%,12px);z-index:2147483100;
  background:rgba(18,60,51,.96);color:#fff;border-radius:999px;padding:10px 20px;font-size:13px;font-weight:700;
  opacity:0;transition:.22s;white-space:nowrap;box-shadow:0 8px 22px rgba(0,0,0,.18);}
.xl-toast.show{opacity:1;transform:translate(-50%,0);}

/* ============================================================
   原生底部 TabBar（线性 SVG 图标）
   ============================================================ */
.xl-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:2147482000;
  background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--xl-line);
  padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px));
  display:grid;grid-template-columns:repeat(4,1fr);}
.xl-tab{border:0;background:transparent;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;
  align-items:center;gap:4px;padding:4px 0 2px;color:#9AA39D;text-decoration:none;min-height:50px;justify-content:center;
  transition:color .18s;position:relative;}
.xl-tab svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .22s cubic-bezier(.2,1.4,.4,1);}
.xl-tab em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.02em;}
.xl-tab.on{color:var(--xl-brand);}
.xl-tab.on svg{transform:translateY(-1px) scale(1.06);stroke-width:2;}
.xl-tab::before{content:"";position:absolute;top:1px;width:20px;height:2.5px;border-radius:99px;background:var(--xl-brand);
  opacity:0;transform:scaleX(0);transition:.2s;}
.xl-tab.on::before{opacity:1;transform:scaleX(1);}
.xl-tab:active svg{transform:scale(.88);}

/* App 内访问心理页：隐藏下载心溯 App 跳转条 */
body.xl-app .xl-jump{display:none!important;}

/* 监测页 App 内微调 */
body.xl-app #rthNav,
body.xl-app .rth-top{display:none!important;}

/* ============================================================
   过渡动画（保留，去掉常驻呼吸/扫光类「AI 味」效果）
   ============================================================ */
@keyframes xlPageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
body.xl-app:not(.xl-home) .wrap,
body.xl-app .rth-wrap{animation:xlPageIn .45s cubic-bezier(.25,.8,.3,1) both;}
body.xl-app .section-tight{animation:xlPageIn .45s .03s cubic-bezier(.25,.8,.3,1) both;}
@media(prefers-reduced-motion:reduce){body.xl-app .wrap,body.xl-app .rth-wrap{animation:none!important}}

/* 页面跳转过渡：声波扩散遮罩 */
.xl-navfx{position:fixed;inset:0;z-index:2147483200;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 50% 58%,rgba(18,60,51,.94) 0%,rgba(9,24,21,.98) 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;}
.xl-navfx.show{opacity:1;}
.xl-navfx .xf-ring{position:absolute;width:64px;height:64px;border-radius:50%;border:2px solid rgba(110,213,184,.6);opacity:0;}
.xl-navfx.show .xf-ring{animation:xfRing .5s ease-out forwards;}
.xl-navfx.show .xf-ring.r2{animation-delay:.1s;border-color:rgba(159,240,210,.5);}
@keyframes xfRing{0%{transform:scale(.6);opacity:.8}100%{transform:scale(5.2);opacity:0}}
.xl-navfx img{width:70px;height:70px;border-radius:20px;opacity:0;transform:scale(.82);
  box-shadow:0 0 26px rgba(110,213,184,.35);}
.xl-navfx.show img{animation:xfMark .48s cubic-bezier(.2,1.3,.35,1) forwards;}
@keyframes xfMark{0%{opacity:0;transform:scale(.72)}55%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
.xl-navfx b{color:#eafbf4;font-size:15px;letter-spacing:.3em;font-weight:800;opacity:0;}
.xl-navfx.show b{animation:xfWord .42s .07s ease forwards;}
@keyframes xfWord{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}

/* 通用按压反馈 */
@keyframes xfTap{0%{transform:scale(1)}40%{transform:scale(.975)}100%{transform:scale(1)}}
.xl-app .psi-btn:active,.xl-app .pp-done:active{animation:xfTap .28s ease;}

/* ============================================================
   小溯对话面板（.aipanel）在心溯 App 内的全屏布局（Calm UI）
   ============================================================ */
/* 面板占满整个安全区，覆盖 TabBar */
body.xl-app .aipanel{
  left:0;right:0;top:0;bottom:0;
  width:auto;height:auto;max-height:none;border-radius:0;
  z-index:2147484000;padding:0;background:var(--xl-bg);
}
body.xl-app .aipanel.show{display:flex;}

/* 头部：单行不折行，标题区可收缩省略，按钮统一 34×34 */
body.xl-app .ai-head{
  padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px 14px;
  gap:10px;flex-wrap:nowrap;min-height:auto;flex:none;
}
body.xl-app .ai-head .av,
body.xl-app .ai-head .qm-av-mini{width:38px;height:38px;border-radius:11px;flex:none;object-fit:cover;}
body.xl-app .ai-head .av img{width:100%;height:100%;border-radius:11px;object-fit:cover;}
body.xl-app .ai-head>div{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:1px;}
body.xl-app .ai-head b{
  font-size:15.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
body.xl-app .ai-head>div>span{
  font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
/* 右侧三个按钮（导出/新对话/关闭）统一尺寸，不再各自 margin-left:auto */
body.xl-app .ai-head .ai-hbtn,
body.xl-app .ai-head #aiClose{
  margin-left:0;flex:none;width:34px;height:34px;padding:0;display:grid;place-items:center;
  border-radius:10px;background:rgba(255,255,255,.10);color:#dbe7f2;border:0;cursor:pointer;
  transition:background .15s;
}
body.xl-app .ai-head .ai-hbtn:active,
body.xl-app .ai-head #aiClose:active{background:rgba(255,255,255,.22);}
body.xl-app .ai-head #aiClose{background:rgba(255,255,255,.16);}
body.xl-app .ai-head button svg{width:17px;height:17px;}

/* 消息区 */
body.xl-app .ai-log{flex:1 1 auto;min-height:0;background:var(--xl-bg);padding:14px;}
body.xl-app .ai-log .msg{font-size:14px;line-height:1.65;max-width:88%;}
body.xl-app .ai-log .msg.bot{background:#fff;border-color:var(--xl-line);color:var(--xl-ink);
  border-radius:4px 16px 16px 16px;}
body.xl-app .ai-log .msg.user{background:var(--xl-brand);border-radius:16px 4px 16px 16px;}
/* 消息内追问 / 朗读 / 换个回答 */
body.xl-app .ai-follow{border:1px dashed #BFD6CC;background:#F3F8F5;color:var(--xl-brand2);}
body.xl-app .ai-follow:hover{background:#E7F0EC;border-color:var(--xl-accent);}
body.xl-app .msg-tools{gap:8px;margin-top:8px;}
body.xl-app .ai-speak,
body.xl-app .ai-regen{
  border:1px solid var(--xl-line);background:#fff;color:var(--xl-sub);
  border-radius:999px;padding:4px 11px;
}
body.xl-app .ai-speak svg,
body.xl-app .ai-regen svg{width:13px;height:13px;}
body.xl-app .ai-speak:active,
body.xl-app .ai-regen:active{background:#F1F4F2;border-color:#C9D6CF;color:var(--xl-brand2);}
body.xl-app .ai-speak.speaking{border-color:var(--xl-accent);color:var(--xl-brand2);background:#EAF3EF;}
body.xl-app .deep-typing .dt-label{color:var(--xl-brand2);}

/* 工具抽屉 */
body.xl-app .ai-tools{flex:none;background:#fff;border-top:1px solid var(--xl-line);}
body.xl-app .ait-toggle{
  display:flex;align-items:center;gap:8px;width:100%;border:0;background:#fff;
  font-family:inherit;padding:11px 16px;cursor:pointer;text-align:left;color:var(--xl-sub);
}
body.xl-app .ait-toggle:active{background:#F6F8F6;}
body.xl-app .ait-toggle .ait-ico{display:inline-flex;color:var(--xl-brand2);}
body.xl-app .ait-toggle .ait-ico svg{width:17px;height:17px;}
body.xl-app .ait-toggle b{font-size:13px;font-weight:800;color:var(--xl-ink);letter-spacing:.03em;}
body.xl-app .ait-toggle .ait-arrow{margin-left:auto;display:inline-flex;color:var(--xl-faint);
  transition:transform .25s ease;}
body.xl-app .ait-arrow svg{width:16px;height:16px;}
body.xl-app .ai-tools.collapsed .ait-body{display:none;}
body.xl-app .ai-tools.collapsed .ait-arrow{transform:rotate(180deg);}
body.xl-app .ait-body{padding-bottom:12px;}
/* 快捷话题 / 学习胶囊 */
body.xl-app .ai-quick{display:flex;gap:8px;flex-wrap:wrap;padding:2px 16px 0;background:#fff;}
body.xl-app .ai-quick .chip{
  background:#fff;border:1px solid var(--xl-line);color:var(--xl-ink);
  border-radius:999px;padding:8px 15px;font-size:13px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:background .14s,border-color .14s,transform .14s;
}
body.xl-app .ai-quick .chip:active{background:#F1F4F2;border-color:#C9D6CF;transform:scale(.96);}
body.xl-app .ai-study{padding:13px 16px 0;background:#fff;}
body.xl-app .ais-title{
  display:flex;align-items:center;gap:5px;margin-bottom:9px;
  font-size:11.5px;font-weight:800;color:var(--xl-sub);letter-spacing:.06em;
}
body.xl-app .ais-title svg{width:15px;height:15px;color:var(--xl-brand2);flex:none;}
body.xl-app .ais-row{display:flex;gap:8px;flex-wrap:wrap;}
body.xl-app .ais-btn{
  display:inline-flex;align-items:center;gap:5px;border:1px solid #DCE7E1;
  background:#F3F7F5;color:var(--xl-brand2);border-radius:999px;
  font-size:12.5px;font-weight:700;padding:7px 13px;cursor:pointer;font-family:inherit;
  white-space:nowrap;transition:background .14s,border-color .14s,transform .14s;
}
body.xl-app .ais-btn svg{width:14px;height:14px;flex:none;}
body.xl-app .ais-btn:hover{background:#E7F0EC;border-color:#C3D5CC;transform:none;}
body.xl-app .ais-btn:active{background:#DFEBE5;border-color:#B6CBC0;transform:scale(.96);}

/* 输入栏：深度思考按钮 + 输入框 + 语音 + 发送，同一行 */
body.xl-app .ai-inputbar{
  flex:none;display:flex;align-items:center;gap:8px;
  padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));
  background:#fff;border-top:1px solid var(--xl-line);
}
body.xl-app .aib-tool{
  flex:none;width:40px;height:40px;border-radius:12px;padding:0;display:grid;place-items:center;
  border:1px solid var(--xl-line);background:#F3F6F4;color:var(--xl-sub);cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,transform .14s;
}
body.xl-app .aib-tool svg{width:20px;height:20px;}
body.xl-app .aib-tool:active{transform:scale(.93);}
body.xl-app .aib-tool.on{background:var(--xl-brand);border-color:var(--xl-brand);color:#fff;}
/* 旧的复选框深度思考行由输入栏内按钮取代，保持隐藏 */
body.xl-app .ai-deep,
body.xl-app .ai-deep[hidden],
body.xl-app .ai-deep:not([hidden]){display:none!important;}
body.xl-app .ai-input{
  flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;
  padding:0;border:0;background:transparent;
}
body.xl-app .ai-input input{
  flex:1;min-width:0;height:40px;border:1px solid var(--xl-line);border-radius:999px;
  background:#F3F6F4;padding:0 16px;font-size:15px;outline:none;color:var(--xl-ink);
  font-family:inherit;transition:border-color .15s,background .15s;
}
body.xl-app .ai-input input:focus{border-color:var(--xl-accent);background:#fff;}
body.xl-app .ai-input button,
body.xl-app .ai-input .ai-mic,
body.xl-app #aiSend{
  flex:none;width:40px;height:40px;border-radius:50%;border:0;padding:0;
  display:grid;place-items:center;cursor:pointer;color:#fff;
}
body.xl-app .ai-input .ai-mic{background:var(--xl-brand2);}
body.xl-app .ai-input .ai-mic:active{background:var(--xl-brand);}
body.xl-app #aiSend{background:var(--xl-brand);}
body.xl-app #aiSend:active{background:var(--xl-brand2);}
body.xl-app .ai-mic svg{width:19px;height:19px;}
body.xl-app #aiSend svg{width:19px;height:19px;}

/* 小屏手机：头部状态文字再压半号，输入按钮不缩 */
@media(max-width:360px){
  body.xl-app .ai-head b{font-size:14.5px;}
  body.xl-app .ai-log{padding:12px;}
}

/* 统一 SVG 图标（心溯 App 内） */
.i{width:1em;height:1em;vertical-align:-0.12em;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;display:inline-block;}
.is-16{width:16px;height:16px}.is-18{width:18px;height:18px}.is-20{width:20px;height:20px}
.is-22{width:22px;height:22px}.is-24{width:24px;height:24px}.is-26{width:26px;height:26px}
.xl-logo-img{width:46px;height:46px;border-radius:14px;object-fit:cover;box-shadow:0 6px 16px rgba(15,58,53,.28);}
.hm-ic{color:var(--xl-brand);display:inline-flex;}
.h-chips .i{color:var(--xl-brand2);}
.hc-cover{color:var(--xl-brand2);}
.hs-ic{color:var(--xl-brand);display:inline-flex;}

/* 平台互通双开关 */
.h-suite{display:flex;flex-direction:column;gap:9px;margin-top:14px;}
/* 心情打卡状态行 */
.h-mood-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap;}
.hmm-streak{font-size:11.5px;color:var(--xl-sub);line-height:1.5;}
.hmm-streak b{color:var(--xl-brand);}
.hmm-week{display:inline-flex;gap:5px;}
.hmw-dot{width:11px;height:11px;border-radius:50%;display:inline-block;}
.h-switch{display:flex;align-items:center;gap:11px;width:100%;background:var(--xl-card);
  border:1px solid var(--xl-line);border-radius:14px;padding:12px 14px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--xl-ink);}
.h-switch:active{background:#FBFCFA;}
.h-switch .hs-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.h-switch b{font-size:13px;font-weight:800;}
.h-switch em{font-size:11px;color:var(--xl-faint);font-style:normal;line-height:1.5;}
.h-switch .hs-go{color:#B6C0BA;font-size:18px;font-weight:700;flex:none;}
.h-switch .hs-ic{width:34px;height:34px;border-radius:10px;background:#EEF3EF;display:grid;place-items:center;flex:none;}

/* ============================================================
   心溯「我的」页（xinli-me.html）Calm UI
   ============================================================ */
.xl-me .xl-scroll{max-width:720px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 26px;}
.is-14{width:14px;height:14px}

/* 个人卡 */
.me-profile{display:flex;align-items:center;gap:14px;background:var(--xl-brand);border-radius:18px;
  padding:18px 16px;color:#fff;position:relative;overflow:hidden;box-shadow:0 8px 22px rgba(18,60,51,.18);}
.me-profile::after{content:"";position:absolute;right:-46px;top:-46px;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(110,213,184,.22),transparent 68%);pointer-events:none;}
.mp-av{flex:none;width:54px;height:54px;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.12);
  display:grid;place-items:center;box-shadow:0 4px 12px rgba(0,0,0,.18);position:relative;z-index:1;}
.mp-av img{width:100%;height:100%;object-fit:cover;}
.mp-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;position:relative;z-index:1;}
.mp-tx>b{font-size:18px;font-weight:800;line-height:1.3;}
.mp-tx>span{font-size:11.5px;color:rgba(224,240,234,.82);line-height:1.45;}
.mp-chips{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap;}
.mp-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);
  color:#EAF4EF;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:700;text-decoration:none;max-width:100%;}
.mp-chip i{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mp-chip:active{background:rgba(255,255,255,.22);}
.mp-auth{flex:none;align-self:flex-start;border:0;border-radius:999px;padding:8px 15px;font-size:12.5px;font-weight:800;
  background:#fff;color:var(--xl-brand);cursor:pointer;font-family:inherit;position:relative;z-index:1;
  box-shadow:0 3px 10px rgba(0,0,0,.14);white-space:nowrap;}
.mp-auth:active{transform:scale(.96);}
.mp-auth.is-out{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28);box-shadow:none;}

/* 成长数据四宫格 */
.me-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;}
.ms-cell{background:var(--xl-card);border:1px solid var(--xl-line);border-radius:14px;padding:12px 6px;
  display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;}
.ms-cell b{font-size:19px;font-weight:800;color:var(--xl-brand);font-variant-numeric:tabular-nums;line-height:1.2;}
.ms-cell span{font-size:10px;color:var(--xl-sub);font-weight:700;line-height:1.35;}

/* 综合评估卡（复用首页 h-today 结构语言） */
.me-intake{display:flex;align-items:center;gap:13px;width:100%;margin-top:10px;background:var(--xl-card);
  border:1px solid var(--xl-line);border-left:4px solid var(--xl-brand);border-radius:16px;padding:15px 14px;
  cursor:pointer;font-family:inherit;text-align:left;color:var(--xl-ink);box-shadow:0 1px 4px rgba(20,33,29,.04);}
.me-intake:active{transform:scale(.992);}
.mi-ring{position:relative;flex:none;width:58px;height:58px;border-radius:50%;background:#ECEAE2;display:grid;place-items:center;}
.mi-ring i{position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--xl-brand) 0deg,#ECEAE2 0deg);
  -webkit-mask:radial-gradient(circle,transparent 56%,#000 58%);mask:radial-gradient(circle,transparent 56%,#000 58%);}
.mi-ring b{position:relative;font-size:12.5px;font-weight:800;color:var(--xl-brand);}
.mi-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.mi-kicker{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--xl-accent);}
.mi-tx>b{font-size:15px;font-weight:800;color:var(--xl-ink);line-height:1.35;}
.mi-tx>em{font-size:11px;color:var(--xl-sub);font-style:normal;line-height:1.5;}
.mi-go{flex:none;display:inline-flex;align-items:center;gap:2px;background:var(--xl-brand);color:#fff;
  font-size:12px;font-weight:800;border-radius:10px;padding:7px 11px;white-space:nowrap;}
.mi-go svg{width:13px;height:13px;}
.me-intake:active .mi-go{background:var(--xl-brand2);}

/* 近 14 天心情 */
.me-trend-card{background:var(--xl-card);border:1px solid var(--xl-line);border-radius:16px;padding:14px;}
.mt-dots{display:flex;justify-content:space-between;gap:4px;}
.mt-dot{flex:1;height:26px;border-radius:7px;display:block;min-width:0;transition:transform .15s;}
.mt-more{margin-top:11px;display:flex;align-items:center;justify-content:center;gap:4px;text-decoration:none;
  color:var(--xl-brand2);font-size:12.5px;font-weight:800;}
.mt-more svg{width:14px;height:14px;}
.mt-more:active{opacity:.7;}

/* 记录行列表 */
.me-list{display:flex;flex-direction:column;gap:8px;}
.me-row{display:flex;align-items:center;gap:12px;width:100%;background:var(--xl-card);
  border:1px solid var(--xl-line);border-radius:14px;padding:13px 14px;cursor:pointer;font-family:inherit;
  text-align:left;color:var(--xl-ink);text-decoration:none;box-shadow:0 1px 3px rgba(20,33,29,.03);}
.me-row:active{background:#FBFCFA;}
.me-row summary{list-style:none;cursor:pointer;display:contents;}
.me-row .mr-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;}
.mr-ic.c-brand{background:#EEF3EF;color:var(--xl-brand2);}
.mr-ic.c-warm{background:#FBEDEB;color:var(--xl-warn);}
.mr-ic.c-night{background:#EDF1F6;color:#46607C;}
.mr-ic.c-sub{background:#F2F4F1;color:var(--xl-sub);}
.mr-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.mr-tx>b{font-size:14px;font-weight:800;}
.mr-tx>em{font-size:11.5px;color:var(--xl-sub);font-style:normal;line-height:1.5;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.mr-go{flex:none;color:#B6C0BA;font-size:20px;font-style:normal;font-weight:700;line-height:1;}
.mr-bar{display:block;height:4px;border-radius:99px;background:var(--xl-line2);margin-top:5px;overflow:hidden;}
.mr-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--xl-brand2),var(--xl-accent));transition:width .5s ease;}

/* 急救工具箱 */
.me-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.me-tools>button{border:1px solid var(--xl-line);background:var(--xl-card);border-radius:15px;padding:14px 8px 12px;
  display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;font-family:inherit;color:var(--xl-ink);
  transition:transform .14s,border-color .14s,background .14s;}
.me-tools>button:active{transform:scale(.95);background:#F4F7F5;border-color:#C9D6CF;}
.me-tools .i{color:var(--xl-brand2);margin-bottom:2px;}
.me-tools b{font-size:12.5px;font-weight:800;text-align:center;line-height:1.3;}
.me-tools em{font-style:normal;font-size:10px;color:var(--xl-faint);font-weight:700;}

/* 数据与隐私 */
.me-data-card{background:var(--xl-card);border:1px solid var(--xl-line);border-radius:16px;padding:15px;}
.me-data-card p{margin:0 0 12px;font-size:12px;color:var(--xl-sub);line-height:1.8;}
.md-actions{display:flex;gap:8px;flex-wrap:wrap;}
.md-actions button{flex:1 1 auto;min-width:104px;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  border:1px solid var(--xl-line);background:#fff;color:var(--xl-ink);border-radius:999px;padding:10px 14px;
  font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;transition:background .14s,border-color .14s,transform .14s;}
.md-actions button:active{transform:scale(.96);background:#F4F7F5;}
.md-actions button.danger{color:var(--xl-warn);border-color:var(--xl-warn-line);background:var(--xl-warn-bg);}
.md-actions button.danger:active{background:#F7E1DE;}

/* 关于折叠 */
.me-about{display:flex;flex-direction:column;background:var(--xl-card);border:1px solid var(--xl-line);
  border-radius:14px;padding:0 14px;box-shadow:0 1px 3px rgba(20,33,29,.03);}
.me-about>summary{display:flex;align-items:center;gap:12px;padding:13px 0;cursor:pointer;list-style:none;outline:none;}
.me-about>summary::-webkit-details-marker{display:none;}
.me-about[open] .mr-go{transform:rotate(90deg);}
.mr-go{transition:transform .2s;}
.ma-body{padding:0 0 14px 52px;font-size:12px;color:var(--xl-sub);line-height:1.85;}
.ma-body p{margin:0 0 7px;}
.ma-body b{color:var(--xl-ink);}
.ma-body a{color:var(--xl-brand2);font-weight:800;text-decoration:none;}
.ma-body .ma-thin{color:var(--xl-faint);font-size:11px;}

/* 小屏：数据四宫格保 4 列但压缩 */
@media(max-width:340px){
  .ms-cell b{font-size:17px;}
  .me-tools{grid-template-columns:repeat(2,1fr);}
  .mp-tx>b{font-size:16.5px;}
}
