/* ========== 深夜书房 设计系统 v6.5.1 ==========
   暗色优先（默认）：暖灰底+米白字+琥珀强调
   日间模式：暖白底+墨字+琥珀强调
   琥珀(#D4A574) 温暖克制，契合长期反思场景
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap');
/* v6.9.22: @import 保留但下方 @font-face 优先用本地字体；网络字体仅作兜底，且 display=swap 不阻塞渲染 */
:root{
/* 默认暗色：深夜书房 —— 暖灰底+米白字+琥珀强调 */
--c-bg1:#1F1B16;--c-bg2:#252019;--c-bg3:#2C2620;
--c-surface:#332D24;--c-surface-2:#3D362C;--c-elevated:#3A332A;
--c-fg:#E8DFD0;--c-fg-2:#B5AC9C;--c-fg-3:#8A8275;--c-fg-muted:#5C5547;
/* 琥珀强调：温暖克制，替代冷靖蓝 */
--c-primary:#D4A574;--c-primary-2:#E0B585;--c-tab-act:#D4A574;
--c-accent:rgba(212,165,116,0.12);--c-accent-2:rgba(224,181,133,0.18);
--c-shadow:rgba(0,0,0,0.35);--c-shadow-soft:rgba(0,0,0,0.18);
--c-bar-bg:rgba(31,27,22,0.88);--c-input-bg:var(--c-surface-2);--c-input-border:var(--c-border-strong);
--c-border:rgba(232,223,208,0.10);--c-border-strong:rgba(232,223,208,0.22);
/* 模块语义色：暗色底上的低饱和暖色 */
--c-mod-health:#7BA07A;--c-mod-finance:#C9A876;--c-mod-growth:#A88FB5;
--c-mod-pet:#D4A574;--c-mod-mind:#7A9CB0;--c-mod-relationship:#C98B8B;--c-mod-insight:#C9B07A;
/* 状态色（暗色版提亮） */
--c-success:#7BA07A;--c-warning:#D4A574;--c-danger:#C97474;
/* 字号层次 */
--fs-display:22px;--fs-h1:18px;--fs-h2:15px;--fs-body:14px;--fs-small:12px;--fs-tiny:11px;
/* 圆角层次（克制） */
--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-full:9999px;
/* 阴影层次 */
--shadow-1:0 1px 3px var(--c-shadow-soft);--shadow-2:0 2px 8px var(--c-shadow);--shadow-3:0 4px 16px var(--c-shadow);
/* 动效曲线 */
--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);
--dur-fast:0.15s;--dur-base:0.25s;--dur-slow:0.4s;
}
/* 日间模式：暖白底+墨字+琥珀强调 */
[data-theme="light"]{
--c-bg1:#FAF6EE;--c-bg2:#F2EBDB;--c-bg3:#E8E0CC;
--c-surface:#FFFCF5;--c-surface-2:#F5F0E2;--c-elevated:#FFFFFF;
--c-fg:#2A2520;--c-fg-2:#5A5247;--c-fg-3:#8A8275;--c-fg-muted:#B5AC9C;
--c-primary:#A07545;--c-primary-2:#B8865A;--c-tab-act:#A07545;
--c-accent:rgba(160,117,69,0.10);--c-accent-2:rgba(184,134,90,0.15);
--c-shadow:rgba(42,37,32,0.08);--c-shadow-soft:rgba(42,37,32,0.04);
--c-bar-bg:rgba(250,246,238,0.92);--c-input-bg:var(--c-surface-2);--c-input-border:var(--c-border-strong);
--c-border:rgba(42,37,32,0.12);--c-border-strong:rgba(42,37,32,0.24);
--c-mod-health:#5A7A5A;--c-mod-finance:#8B6F47;--c-mod-growth:#6B5B8C;
--c-mod-pet:#A57865;--c-mod-mind:#4A6B7A;--c-mod-relationship:#8C5A6B;--c-mod-insight:#7A6B4A;
--c-success:#3A5A40;--c-warning:#8B6F1A;--c-danger:#8B2C2C;
}
/* 护眼模式：暖米黄（黄昏阅读） */
[data-theme="sepia"]{
--c-bg1:#F5E6CC;--c-bg2:#EDDDB8;--c-bg3:#E0D0A0;
--c-surface:#FAF0DC;--c-surface-2:#F0E5C8;--c-elevated:#FFFAE8;
--c-fg:#3A2A15;--c-fg-2:#5A4A2A;--c-fg-3:#8A7A5A;--c-fg-muted:#B5A585;
--c-primary:#8B5A2B;--c-primary-2:#A06B3A;--c-tab-act:#8B5A2B;
--c-accent:rgba(139,90,43,0.10);--c-accent-2:rgba(160,107,58,0.15);
--c-shadow:rgba(58,42,21,0.10);--c-shadow-soft:rgba(58,42,21,0.05);
--c-bar-bg:rgba(245,230,204,0.92);--c-input-bg:var(--c-surface-2);--c-input-border:var(--c-border-strong);
--c-border:rgba(58,42,21,0.14);--c-border-strong:rgba(58,42,21,0.26);
}
*{margin:0;padding:0;box-sizing:border-box;font-family:"Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
html,body{min-height:100vh}
body{background:linear-gradient(180deg,var(--c-bg1) 0%,var(--c-bg2) 45%,var(--c-bg3) 100%);color:var(--c-fg);background-attachment:fixed;padding-bottom:80px;transition:background .5s,color .3s}
/* 标题用衬线（思源宋体）—— 契合反思工具的质感 */
h1,h2,h3,.serif,.display{font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-weight:600;letter-spacing:0.02em}
/* 数字用等宽，避免跳动 */
.num,.tabular,.count,.badge{font-variant-numeric:tabular-nums}
/* 骨架屏（加载占位） */
.skeleton{background:linear-gradient(90deg,var(--c-surface-2) 0%,var(--c-surface) 50%,var(--c-surface-2) 100%);background-size:200% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite;border-radius:var(--r-md)}
@keyframes skeleton-pulse{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* v6.6.2 隐私模式：模糊敏感内容（覆盖真实使用的类名） */
body.privacy-mode .overview-card .num,
body.privacy-mode .rec .tt,
body.privacy-mode .corr-item .detail,
body.privacy-mode .corr-item .title,
body.privacy-mode .suggestion-item,
body.privacy-mode #quickNoteInput,
body.privacy-mode #quickNoteFeedback,
body.privacy-mode #budgetPanel,
body.privacy-mode #detailContent .rec {
  filter: blur(6px);
  transition: filter 0.2s;
  cursor: default;
}
/* 隐私模式下悬停临时解除（hover 显示原文） */
body.privacy-mode .overview-card:hover .num,
body.privacy-mode .rec:hover .tt,
body.privacy-mode .corr-item:hover .detail,
body.privacy-mode .corr-item:hover .title,
body.privacy-mode #quickNoteInput:focus,
body.privacy-mode #budgetPanel:hover,
body.privacy-mode #detailContent .rec:hover {
  filter: none;
  transition: filter 0.15s;
}
/* 卡片入场动画（staggered 淡入上移） */
.fade-in{opacity:0;transform:translateY(8px);animation:fadeInUp var(--dur-slow) var(--ease-out) forwards}
@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}
/* 数字滚动 */
.roll-num{display:inline-block;transition:transform var(--dur-base) var(--ease-out)}
#lock{position:fixed;inset:0;background:linear-gradient(180deg,var(--c-bg1) 0%,var(--c-bg2) 45%,var(--c-bg3) 100%);background-attachment:fixed;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}
#lock .login-card{background:var(--c-surface);border-radius:var(--r-xl);padding:40px 32px 36px;width:100%;max-width:340px;box-shadow:0 20px 60px var(--c-shadow);text-align:center;border:1px solid var(--c-border)}
#lock .login-ic{width:72px;height:72px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--c-primary),var(--c-primary-2));display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:40px}
#lock .login-title{font-size:24px;font-weight:700;color:var(--c-primary);margin-bottom:6px;letter-spacing:1px}
#lock .login-sub{font-size:13px;color:var(--c-fg-3);margin-bottom:28px}
#lock input{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-md);padding:14px 18px;width:100%;color:var(--c-fg);font-size:16px;text-align:left;outline:none;transition:border-color var(--dur-base);box-sizing:border-box}
#lock input::placeholder{color:var(--c-fg-muted);text-align:center}
#lock input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-accent)}
#lock button{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-2));border:none;border-radius:12px;padding:14px 30px;color:#fff;font-size:17px;font-weight:600;cursor:pointer;margin-top:16px;width:100%;box-shadow:0 6px 16px var(--c-shadow)}
#lock button:active{transform:scale(0.98)}
#lock .err{color:#EF4444;margin-top:12px;display:none;font-size:13px;text-align:center}
#app{display:none;max-width:480px;margin:0 auto;padding:18px 16px 90px}

/* v6.6.2 桌面端响应式：宽屏时场景卡片多列 + 更大字号 */
@media(min-width:768px){
  #app{max-width:760px;padding:24px 20px 100px}
  .hd h1{font-size:22px}
  .hd-r button{font-size:20px;width:40px;height:40px}
  .bar{max-width:760px;padding:8px 0 22px}
  .tab{font-size:12px;padding:10px 0 8px;margin:0 8px}
  .tab .ic{font-size:24px}
  .overview{grid-template-columns:repeat(3,1fr);gap:10px}
  .overview-card{padding:14px 16px}
  .overview-card .num{font-size:28px}
  .scene-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .scene-card{padding:14px 12px}
  .scene-card .s-ic{font-size:22px}
  .scene-card .s-nm{font-size:13px}
  .rec{padding:14px 16px;margin-bottom:10px}
  .rec .tt{font-size:14px}
  .section-label{font-size:15px;margin:24px 0 12px}
  .greet .t{font-size:20px}
  .greet .d{font-size:15px}
}
@media(min-width:1024px){
  #app{max-width:920px;padding:28px 24px 110px}
  .hd h1{font-size:24px}
  .bar{max-width:920px}
  .tab{font-size:13px;margin:0 12px}
  .tab .ic{font-size:26px}
  .overview{gap:12px}
  .overview-card .num{font-size:30px}
  .scene-grid{grid-template-columns:repeat(4,1fr);gap:12px}
  .scene-card{padding:16px 14px}
}
/* v6.5.7 首页信息密度优化：更大间距+呼吸感 */
.hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.hd h1{font-size:var(--fs-display);font-weight:700;color:var(--c-fg);font-family:"Noto Serif SC",serif;letter-spacing:0.02em}
.hd-r{display:flex;gap:8px;align-items:center}
.hd-r .badge{background:var(--c-danger);color:#fff;font-size:10px;border-radius:var(--r-full);padding:0 8px;line-height:18px}
.hd-r button{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-full);padding:6px 12px;color:var(--c-fg-2);font-size:14px;cursor:pointer;box-shadow:var(--shadow-1);transition:all var(--dur-base)}
.hd-r button:active{transform:scale(0.95)}
/* v6.5.7 问候卡：增加内边距+底部间距 */
.greet{background:var(--c-surface);border-radius:var(--r-lg);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-2);border-left:3px solid var(--c-primary);border:1px solid var(--c-border);border-left:3px solid var(--c-primary)}
.greet .d{font-size:var(--fs-small);color:var(--c-fg-3)}
.greet .t{font-size:var(--fs-h2);color:var(--c-fg-2);margin-top:4px;display:flex;justify-content:space-between;align-items:center}
.greet .t strong{color:var(--c-fg)}
.greet .t .phase-badge{background:var(--c-accent);color:var(--c-primary);font-size:var(--fs-tiny);font-weight:600;border-radius:var(--r-full);padding:2px 12px;line-height:22px}
.greet .t .remind-badge{background:var(--c-danger);color:#fff;font-size:10px;border-radius:var(--r-full);padding:0 10px;line-height:20px;cursor:pointer}
.growth-bar{background:var(--c-surface);border-radius:var(--r-md);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow-1);border:1px solid var(--c-border)}
.growth-bar .row{display:flex;justify-content:space-between;align-items:center}
.growth-bar .phase{font-size:var(--fs-small);font-weight:700;color:var(--c-primary)}
.growth-bar .progress{font-size:var(--fs-small);color:var(--c-fg-3)}
.growth-bar .bar{height:6px;background:var(--c-surface-2);border-radius:var(--r-full);margin-top:8px;overflow:hidden}
.growth-bar .bar .fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--c-primary),var(--c-primary-2));transition:width 0.8s var(--ease-out)}
.growth-bar .desc{font-size:var(--fs-tiny);color:var(--c-fg-3);margin-top:4px}
/* v6.5.7 概览卡：增大内边距+底部间距 */
.overview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:20px}
.overview-card{background:var(--c-surface);border-radius:14px;padding:14px 10px;text-align:center;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.overview-card .num{font-size:22px;font-weight:700;color:var(--c-primary)}
.overview-card .label{font-size:10px;color:var(--c-fg-2);margin-top:3px;font-weight:500}
/* v6.5.7 输入区：增大内边距+底部间距 */
.input-area{background:var(--c-surface);border-radius:16px;padding:12px 16px;margin-bottom:20px;display:flex;gap:10px;align-items:center;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.input-area input{flex:1;background:transparent;border:none;color:var(--c-fg);font-size:16px;outline:none;padding:6px 0}
.input-area input::placeholder{color:var(--c-fg-3)}
.input-area button{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-2));border:none;border-radius:10px;padding:9px 16px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:0 3px 10px var(--c-shadow)}
/* v6.5.7 焦点卡：增大内边距+底部间距 */
.focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.focus-card{background:var(--c-surface);border-radius:14px;padding:16px 16px;box-shadow:0 2px 10px rgba(0,0,0,0.05);cursor:pointer;transition:transform .15s}
.focus-card:active{transform:scale(0.96)}
.focus-card .top{display:flex;justify-content:space-between;align-items:center}
.focus-card .ic{font-size:22px}
.focus-card .nm{font-size:14px;font-weight:700;color:var(--c-fg)}
.focus-card .br{font-size:10px;color:var(--c-fg-2);margin-top:4px}
.focus-card .progress{height:4px;background:var(--c-surface-2);border-radius:4px;margin-top:10px;overflow:hidden}
.focus-card .progress .fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--c-primary),var(--c-primary-2));transition:width 0.5s}
.focus-card .status{font-size:9px;padding:2px 8px;border-radius:10px;font-weight:600}
.focus-card .status.active{background:rgba(123,160,122,0.15);color:var(--c-success)}
.focus-card .status.steady{background:rgba(212,165,116,0.15);color:var(--c-warning)}
.focus-card .status.learning{background:var(--c-accent-2);color:var(--c-primary)}
.quick-modules{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.quick-module{background:var(--c-surface);border-radius:12px;padding:12px 4px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,0.04);cursor:pointer;transition:transform .15s}
.quick-module:active{transform:scale(0.94)}
.quick-module .ic{font-size:22px}
.quick-module .nm{font-size:10px;color:var(--c-fg-2);margin-top:4px;font-weight:600}
.quick-module .cnt{font-size:9px;color:var(--c-fg-3)}
.correlation-list{margin:8px 0}
.corr-item{background:var(--c-surface);border-radius:12px;padding:12px 14px;margin-bottom:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);border-left:3px solid var(--c-primary)}
.corr-item .title{font-size:13px;font-weight:700;color:var(--c-fg)}
.corr-item .detail{font-size:12px;color:var(--c-fg-2);margin-top:3px;line-height:1.6}
.suggestion-item{background:var(--c-surface);border-radius:12px;padding:12px 14px;margin-bottom:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);border-left:3px solid #F59E0B;font-size:13px;color:var(--c-fg-2)}
.suggestion-item .actions{display:flex;gap:6px;margin-top:8px}
.suggestion-item .actions button{background:var(--c-surface-2);border:none;border-radius:6px;padding:5px 12px;color:var(--c-fg-2);font-size:11px;cursor:pointer;font-weight:500}
.suggestion-item .actions button.done{background:rgba(123,160,122,0.15);color:var(--c-success)}
.suggestion-item .actions button.skip{background:rgba(201,116,116,0.15);color:var(--c-danger)}
.suggestion-item .feedback{font-size:11px;color:var(--c-fg-3);margin-top:5px}
/* v6.5.7 Section 标签：增大上下间距 */
.section-label{font-size:11px;font-weight:700;color:var(--c-fg-3);letter-spacing:0.5px;text-transform:uppercase;margin:22px 0 12px;padding-left:2px;display:flex;align-items:center;gap:6px}
.section-label:first-of-type{margin-top:0}

/* ====== 设置抽屉 ====== */
.drawer-mask{position:fixed;inset:0;background:rgba(0,0,0,0.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity var(--dur-base);z-index:200}
.drawer-mask.act{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:85vw;background:var(--c-bg2);box-shadow:-8px 0 32px rgba(0,0,0,0.3);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-out);z-index:201;display:flex;flex-direction:column;overflow:hidden}
.drawer.act{transform:translateX(0)}
.drawer-hd{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--c-border);flex-shrink:0}
.drawer-body{flex:1;overflow-y:auto;padding:8px 0;-webkit-overflow-scrolling:touch}
.drawer-group{margin-bottom:8px}
.dg-title{font-size:10px;font-weight:700;color:var(--c-fg-muted);letter-spacing:1px;text-transform:uppercase;padding:12px 18px 6px}
.dg-item{display:flex;align-items:center;gap:12px;padding:12px 18px;font-size:14px;color:var(--c-fg);cursor:pointer;transition:background var(--dur-fast)}
.dg-item:active{background:var(--c-surface-2)}
.dg-item .dg-arrow{margin-left:auto;color:var(--c-fg-muted);font-size:18px}
.dg-item.danger{color:var(--c-danger)}

/* ====== 阶段3 动效 ====== */
/* 卡片交错入场（每个子项延迟 15ms，更快） */
.stagger > *{opacity:0;transform:translateY(6px);animation:staggerIn var(--dur-fast) var(--ease-out) forwards}
.stagger > *:nth-child(1){animation-delay:0.01s}
.stagger > *:nth-child(2){animation-delay:0.03s}
.stagger > *:nth-child(3){animation-delay:0.05s}
.stagger > *:nth-child(4){animation-delay:0.07s}
.stagger > *:nth-child(5){animation-delay:0.09s}
.stagger > *:nth-child(6){animation-delay:0.11s}
.stagger > *:nth-child(7){animation-delay:0.13s}
.stagger > *:nth-child(8){animation-delay:0.15s}
@keyframes staggerIn{to{opacity:1;transform:translateY(0)}}
/* 主题切换全局过渡（缩短到 200ms，更快） */
*{transition-property:background-color,border-color,color,box-shadow;transition-duration:0.2s;transition-timing-function:var(--ease-out)}
/* 避免过渡影响 transform 动画 */
.tab,.tab .ic,.tool-item,.quick-module,.focus-card,.scene-card,.dg-item,.modal-b{transition-property:background-color,border-color,color,box-shadow,transform}

/* v6.5.7 底部Tab重做：增大触控区+视觉权重+激活态胶囊背景 */
.bar{position:fixed;bottom:0;left:0;right:0;background:var(--c-bar-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--c-border);display:flex;padding:6px 0 20px;max-width:480px;margin:0 auto;z-index:100;box-shadow:0 -4px 18px var(--c-shadow-soft)}
.tab{flex:1;text-align:center;color:var(--c-fg-3);font-size:10px;cursor:pointer;padding:8px 0 6px;font-weight:500;transition:color var(--dur-base),background var(--dur-base);position:relative;border-radius:var(--r-md);margin:0 4px}
.tab .ic{font-size:22px;display:block;margin-bottom:2px;transition:transform var(--dur-base) var(--ease-out)}
.tab:active .ic{transform:scale(0.88)}
/* 激活态：文字加粗变色 + 图标上浮 + 胶囊背景 */
.tab.act{color:var(--c-tab-act);font-weight:700}
.tab.act .ic{transform:translateY(-3px) scale(1.08)}
.tab.act{background:var(--c-accent)}
/* 激活指示条：顶部琥珀横线（替代底部圆点，视觉权重更大） */
.tab.act::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:20px;height:2.5px;border-radius:2px;background:var(--c-tab-act)}
.pg{display:none}
.pg.act{display:block;animation:fadeInUp var(--dur-base) var(--ease-out)}
.detail{display:none;padding-bottom:80px}
.detail.act{display:block;animation:fadeInUp var(--dur-base) var(--ease-out)}
.back{background:transparent;border:none;color:var(--c-primary);font-size:var(--fs-h2);cursor:pointer;margin-bottom:12px;font-weight:600}
.rec{background:var(--c-surface);border-radius:var(--r-md);padding:12px 14px;margin-bottom:8px;box-shadow:var(--shadow-1);border:1px solid var(--c-border);display:flex;justify-content:space-between;align-items:center}
.rec .tt{font-size:var(--fs-small);color:var(--c-fg);font-weight:500}
.rec .sb{font-size:var(--fs-tiny);color:var(--c-fg-3);margin-top:3px}
.rec .ac button{background:transparent;border:none;color:var(--c-fg-3);cursor:pointer;padding:0 4px;font-size:16px}
.rec .ac .dl{color:#EF4444}
.add{position:fixed;bottom:88px;right:20px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--c-primary),var(--c-primary-2));border:none;color:#fff;font-size:30px;box-shadow:0 6px 20px var(--c-shadow);cursor:pointer;z-index:50;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-base) var(--ease-out)}
.add:active{transform:scale(0.92)}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:200;justify-content:center;align-items:center;padding:20px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal.act{display:flex}
.modal-b{background:var(--c-surface);border-radius:20px;padding:24px;max-width:440px;width:100%;max-height:82vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,0.15)}
.modal-b h3{font-size:18px;margin-bottom:16px;color:var(--c-fg);font-weight:700}
.modal-b label{display:block;font-size:12px;color:var(--c-fg-2);margin-bottom:5px;margin-top:12px;font-weight:600}
.modal-b input,.modal-b select,.modal-b textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--c-input-border);background:var(--c-input-bg);color:var(--c-fg);font-size:16px;font-family:inherit;margin-bottom:4px;box-sizing:border-box;outline:none;transition:border-color .2s}
.modal-b input:focus,.modal-b select:focus,.modal-b textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-shadow-soft)}
.modal-b textarea{min-height:60px;resize:vertical}
.modal-b .row{display:flex;gap:10px;margin-top:16px}
.modal-b .row button{flex:1;padding:11px;border-radius:10px;border:none;font-size:15px;font-weight:700;cursor:pointer}
.modal-b .sv{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-2));color:#fff;box-shadow:0 4px 12px var(--c-shadow)}
.modal-b .cn{background:var(--c-surface-2);color:var(--c-fg-2)}
.space-item{background:var(--c-surface);border-radius:14px;padding:14px 16px;margin-bottom:10px;box-shadow:0 2px 10px rgba(0,0,0,0.05);cursor:pointer}
.space-item .top{display:flex;justify-content:space-between;align-items:center}
.space-item .nm{font-size:14px;font-weight:700;color:var(--c-fg)}
.space-item .cnt{font-size:12px;color:var(--c-fg-2);font-weight:500}
.space-item .sub{font-size:11px;color:var(--c-fg-3);margin-top:4px;line-height:1.5}
.empty{text-align:center;padding:40px 0;color:var(--c-fg-3)}
.empty .ic{font-size:40px;display:block;margin-bottom:10px;opacity:0.7}
.milestone-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--c-border);font-size:13px;color:var(--c-fg-2);font-weight:500}
.milestone-item .ic{font-size:20px}
.scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.scene-card{background:var(--c-surface);border-radius:12px;padding:10px 12px;box-shadow:0 2px 8px rgba(0,0,0,0.04);cursor:pointer;transition:transform .15s;position:relative;overflow:hidden}
.scene-card:active{transform:scale(0.95)}
.scene-card .s-ic{font-size:18px}
.scene-card .s-nm{font-size:12px;color:var(--c-fg);font-weight:600;margin-top:2px}
.scene-card .s-cnt{font-size:10px;color:var(--c-fg-3);margin-top:2px}
.scene-card .s-today{position:absolute;top:8px;right:8px;font-size:9px;color:#fff;background:var(--c-primary);border-radius:8px;padding:1px 6px;min-width:14px;text-align:center}
.rec-toolbar{margin-bottom:12px}
.rec-search{width:100%;padding:10px 14px;border:1px solid var(--c-input-border);border-radius:20px;font-size:16px;background:var(--c-input-bg);color:var(--c-fg);box-sizing:border-box}
.rec-search:focus{outline:none;border-color:var(--c-primary);background:var(--c-elevated)}
/* v6.5.7 日志Tab：增大间距 */
.rec-today{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-2));border-radius:14px;padding:12px 16px;margin-bottom:20px;display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--c-fg-2)}
.rec-today .rt-item{display:flex;align-items:center;gap:3px}
.rec-today .rt-num{font-weight:700;color:var(--c-primary)}
.rec-today .rt-empty{color:var(--c-fg-3);font-size:11px}
/* v6.5.7 日志分组：增大间距 */
.rec-group{margin-bottom:22px}
.rec-group .rg-title{font-size:13px;font-weight:700;color:var(--c-fg);margin-bottom:10px;padding-left:2px;display:flex;align-items:center;gap:8px}
.rec-group .rg-sub{font-size:10px;color:var(--c-fg-3);font-weight:400}
.rec-group.hidden{display:none}
/* v6.5.7 工具卡：增大间距+内边距 */
.tool-section{background:var(--c-surface);border-radius:14px;padding:16px 18px;margin-bottom:20px;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.tool-section .ts-title{font-size:13px;font-weight:600;color:var(--c-fg);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.tool-section .ts-sub{font-size:10px;color:var(--c-fg-3)}
.tool-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.tool-section.collapsible{cursor:pointer}
.tool-section.collapsible .ts-title{padding-right:4px}
.tool-section.collapsible .ts-arrow{font-size:11px;color:var(--c-fg-3);transition:transform 0.2s ease}
.tool-section.collapsible .tool-grid{max-height:600px;overflow:hidden;transition:max-height 0.3s ease,opacity 0.2s ease;opacity:1}
.tool-section.collapsible.collapsed .ts-arrow{transform:rotate(-90deg)}
.tool-section.collapsible.collapsed .tool-grid{max-height:0;opacity:0;margin-top:0}
.tool-item{background:var(--c-surface-2);border-radius:10px;padding:10px 4px;text-align:center;cursor:pointer;transition:transform .15s}
.tool-item:active{transform:scale(0.92)}
.tool-item .t-ic{font-size:20px}
.tool-item .t-nm{font-size:10px;color:var(--c-fg);font-weight:600;margin-top:3px;line-height:1.2}
.tool-item .t-cnt{font-size:9px;color:var(--c-fg-3);margin-top:1px}
.tool-item.primary{background:var(--c-accent);border:1px solid var(--c-border)}

/* ============================================================
   v6.9.24 P0-P3 优化（移动端适配 / 性能 / 安全 / 瘦身）
   ============================================================ */

/* P0-2: 全局表单元素字号 ≥16px，防止 iOS Safari 聚焦自动放大
   覆盖所有内联 style 的 font-size:13px/14px/15px 的 input/textarea/select
   用 !important 因为内联 style 优先级最高 */
input,textarea,select{font-size:16px!important}
/* 但 button 不受影响（button 不触发 iOS 自动放大） */
button{font-size:initial}

/* P0-3: 全面屏 safe-area 安全区处理
   viewport-fit=cover 已开，这里补 env() padding 避让刘海/Home Indicator */
#lock{padding:calc(40px + env(safe-area-inset-top)) 40px calc(40px + env(safe-area-inset-bottom))}
#app{padding:calc(18px + env(safe-area-inset-top)) 16px calc(90px + env(safe-area-inset-bottom))}
.bar{padding:6px 0 calc(20px + env(safe-area-inset-bottom))}
.add{bottom:calc(88px + env(safe-area-inset-bottom))}
#serenityBtn{bottom:calc(24px + env(safe-area-inset-bottom))}
.drawer{padding-bottom:env(safe-area-inset-bottom)}
.modal-b{max-height:calc(82vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}

/* P1-10: 小屏断点（<360px，iPhone SE 1 代 / Galaxy Fold 外屏） */
@media(max-width:360px){
  #app{padding:14px 12px calc(90px + env(safe-area-inset-bottom))}
  .hd h1{font-size:17px}
  .hd-r button{font-size:17px;width:32px;height:32px;padding:6px}
  .overview{grid-template-columns:repeat(3,1fr);gap:6px}
  .overview-card{padding:10px 6px}
  .overview-card .num{font-size:18px}
  .focus-grid{grid-template-columns:1fr;gap:10px}
  .quick-modules{grid-template-columns:repeat(3,1fr)}
  .tool-grid{grid-template-columns:repeat(4,1fr);gap:5px}
  .tool-item{padding:8px 2px}
  .tool-item .t-ic{font-size:18px}
  .tool-item .t-nm{font-size:9px}
  .scene-grid{grid-template-columns:1fr 1fr;gap:6px}
  .input-area{padding:10px 12px}
  .input-area button{padding:8px 12px;font-size:13px}
}

/* P1-10: 横屏适配（手机横屏高度 <500px） */
@media(orientation:landscape) and (max-height:500px){
  #app{padding:10px 16px calc(70px + env(safe-area-inset-bottom))}
  .hd{margin-bottom:8px}
  .hd h1{font-size:16px}
  .hd-r button{width:30px;height:30px;font-size:16px;padding:4px}
  .bar{padding:4px 0 calc(12px + env(safe-area-inset-bottom))}
  .tab{font-size:9px;padding:4px 0 2px}
  .tab .ic{font-size:18px}
  .add{bottom:calc(70px + env(safe-area-inset-bottom));width:44px;height:44px;font-size:24px}
  #serenityBtn{bottom:calc(70px + env(safe-area-inset-bottom));width:44px;height:44px;font-size:18px;right:80px}
  .overview{margin-bottom:12px}
  .section-label{margin:12px 0 8px}
  .greet .t{font-size:14px}
  .greet .d{font-size:11px}
  /* 横屏隐藏装饰性区块，保留核心功能 */
  #homeCognitiveQuick{display:none}
  #homeCorrelations{display:none}
}

/* P1-6: 字体加载优化
   去掉 @import（渲染阻塞），改用系统字体优先；
   Noto Serif SC 仅用于标题/仪式文本，加载失败有 fallback */
@font-face{
  font-family:'Noto Serif SC';
  font-style:normal;
  font-weight:400 700;
  font-display:optional;
  src:local('Noto Serif SC'),local('Songti SC'),local('SimSun');
  /* 不指定 url：优先用系统已装的同名字体，避免网络加载 */
}

/* P0-3: 触屏优化 —— 去掉 iOS/Android 默认点击高亮 */
*{-webkit-tap-highlight-color:transparent}
/* 允许快速双击缩放（P0-1 已放开 user-scalable） */
button,a,.tool-item,.scene-card,.quick-module,.focus-card,.tab,.rec,.dg-item{touch-action:manipulation}

/* P0-3: 隐私模式在触屏上改成 :active 解除模糊（手机无 hover） */
body.privacy-mode .overview-card:active .num,
body.privacy-mode .rec:active .tt,
body.privacy-mode .corr-item:active .detail,
body.privacy-mode .corr-item:active .title,
body.privacy-mode #quickNoteInput:focus,
body.privacy-mode #quickNoteFeedback:focus,
body.privacy-mode #budgetPanel:active,
body.privacy-mode #detailContent .rec:active{filter:none;transition:filter .15s}

/* P1-10: prefers-reduced-motion 适配（无障碍 + 省电） */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:0.01ms!important;
    scroll-behavior:auto!important;
  }
  .skeleton{animation:none;background:var(--c-surface-2)}
}

/* P0-3: 100dvh 替代 100vh（iOS Safari 地址栏动态高度） */
html,body{min-height:100dvh;min-height:100vh} /* 100vh 兜底老浏览器 */

