/* ============================================================
   学习小手机 · 薄荷清透 + 毛玻璃（Glassmorphism）
   设计令牌遵循 UI/UX Pro Max SOP：
   Step2 令牌 → Step3 组件规格 → Step5 实现指引
   主色：薄荷 Mint（色相 164°，清透 / 低饱和 / 时尚）
   玻璃层：--glass（面板）/ --glass-2（强调面板）/ --blur
   ============================================================ */

:root{
  /* ---- 薄荷色阶（Mint Scale）---- */
  --mint-50:#F4FBF8;  --mint-100:#E6F6EF;  --mint-200:#CDEFE2;
  --mint-300:#A9E3D0;  --mint-400:#7ED3B8;  --mint-500:#52BFA1;
  --mint-600:#3AA78C;  --mint-700:#2A7F68;  --mint-800:#1F5E4E;

  /* ---- 中性 / 文字（薄荷调墨色）---- */
  --ink:#1F3B34;
  --text:#1F3B34;
  --sub:#4F6E67;        /* 对比度 4.8:1，符合 WCAG AA */
  --faint:#93B3AA;
  --line:rgba(42,127,104,.14);
  --accent:#3AA78C;     /* 强调：进度环 / 进度条 / 星星 / 光标 */
  --accent-strong:#2A7F68;

  /* ---- 背景 ---- */
  --bg:#E9F4F0;
  --outer:#DCEBE5;
  --card:#FFFFFF;
  --paper:rgba(255,255,255,.86);
  --cork:#E7F5EF;

  /* ---- 点缀色（低饱和，与薄荷同调）---- */
  --mint-bg:#CDEFE2;  --mint:#2A7F68;
  --blue-bg:#DEEBF3;  --blue:#5E89A3;
  --pink-bg:#FBEAEC;  --pink:#C08087;
  --cream-bg:#FAF1E0; --cream:#967C4E;

  /* ---- 角色色（玻璃）---- */
  --dream:rgba(222,238,246,.72);
  --mine:rgba(250,241,224,.72);

  /* ---- 毛玻璃令牌 ---- */
  --glass:rgba(255,255,255,.55);
  --glass-2:rgba(255,255,255,.74);
  --glass-brd:rgba(255,255,255,.7);
  --blur:18px;
  --glass-sh:0 8px 24px rgba(31,59,52,.07), inset 0 1px 0 rgba(255,255,255,.6);
  --sh:0 8px 24px rgba(31,59,52,.07);
  --sh-lg:0 18px 48px rgba(31,59,52,.14);

  --font-cn-title:'LXGW WenKai','霞鹜文楷','Kaiti SC',KaiTi,'STKaiti','Songti SC',serif;
  --font-cn:-apple-system,BlinkMacSystemFont,'PingFang SC','Source Han Sans SC','Noto Sans CJK SC','Microsoft YaHei',sans-serif;
  --font-en-title:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-en:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* 不支持 backdrop-filter 时，玻璃自动变实一点，保证可读性 */
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  :root{--glass:rgba(255,255,255,.88);--glass-2:rgba(255,255,255,.93);--dream:#EAF2F7;--mine:#FAF3E6;}
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
button{font-family:inherit;}
html,body{margin:0;padding:0;height:100%;}
body{
  background:
    radial-gradient(900px 600px at 12% 10%, rgba(126,211,184,.45), transparent 60%),
    radial-gradient(800px 700px at 88% 82%, rgba(94,137,163,.28), transparent 62%),
    linear-gradient(160deg,#EAF6F2 0%,#DDEEE9 55%,#D5E9E4 100%);
  font-family:var(--font-cn);
  color:var(--text);
  font-size:15px;
  line-height:1.8;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
  display:flex;align-items:center;justify-content:center;
}

/* ---------- 手机壳 ---------- */
.stage{display:flex;align-items:center;justify-content:center;padding:24px;}
.phone{
  position:relative;isolation:isolate;
  width:390px;height:844px;
  border-radius:40px;
  background:linear-gradient(165deg,#F7FCFA 0%,#EBF8F3 45%,#E2F4EE 100%);
  box-shadow:0 24px 70px rgba(31,59,52,.16), 0 2px 0 rgba(255,255,255,.7) inset;
  overflow:hidden;
  display:flex;flex-direction:column;
}
/* 壳内两团光斑 —— 玻璃层的模糊底 */
.phone::before,.phone::after{
  content:'';position:absolute;pointer-events:none;z-index:0;
}
.phone::before{
  width:320px;height:320px;left:-90px;top:-60px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(126,211,184,.55), rgba(126,211,184,0) 70%);
  filter:blur(6px);
}
.phone::after{
  width:360px;height:360px;right:-120px;bottom:-80px;border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(148,196,222,.42), rgba(148,196,222,0) 70%);
  filter:blur(6px);
}
.view{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;z-index:1;}

@media (max-width:560px),(max-height:900px){
  body{display:block;background:#EAF6F2;}
  .stage{padding:0;}
  .phone{width:100%;height:100vh;height:100dvh;border-radius:0;box-shadow:none;}
  /* 真机上系统状态栏已经在顶部，壳里的假状态栏会让时间出现两次 —— 直接去掉，
     改用安全区留白；底部 home indicator 同理躲开手势条。 */
  .statusbar{display:none;}
  .view{padding-top:env(safe-area-inset-top,0px);}
  .homebar{height:calc(22px + env(safe-area-inset-bottom,0px));
    padding-bottom:env(safe-area-inset-bottom,0px);}
}

/* ---------- 状态栏 ---------- */
.statusbar{
  flex:0 0 42px;height:42px;position:relative;z-index:2;
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:0 24px 5px;
  font-family:var(--font-en);font-size:12px;color:var(--sub);letter-spacing:.02em;
}
.sb-right{display:flex;align-items:center;gap:5px;}

/* ---------- 通用滚动内容 ---------- */
.content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
.content::-webkit-scrollbar{width:0;height:0;}
.page{padding:4px 20px 28px;}

/* ---------- 排版 ---------- */
.h1{font-family:var(--font-cn-title);font-size:26px;line-height:1.3;letter-spacing:.05em;margin:0;}
.h2{font-family:var(--font-cn-title);font-size:19px;line-height:1.3;letter-spacing:.05em;margin:0;}
.h3{font-family:var(--font-cn-title);font-size:16px;letter-spacing:.05em;margin:0;}
.en{font-family:var(--font-en-title);font-size:15px;letter-spacing:.06em;color:var(--sub);}
.sub{font-size:12px;color:var(--sub);letter-spacing:.02em;line-height:1.7;}
.mini-label{font-size:11px;color:var(--faint);letter-spacing:.08em;font-family:var(--font-en);}
.center{text-align:center;}
.left{text-align:left;}

/* ---------- 间距工具 ---------- */
.mt8{margin-top:8px;}.mt16{margin-top:16px;}.mt24{margin-top:24px;}.mt32{margin-top:32px;}.mt48{margin-top:48px;}
.gap8{height:8px;}.gap16{height:16px;}.gap24{height:24px;}.gap32{height:32px;}

/* ---------- 玻璃面板通用 ---------- */
.card,.card-flat,.rows,.qz-card,.mk-item,.dr-card,.dr-hero,.home-playing,.widget,
.letter,.cert,.app-head,.composer,.mini,.homebar,.rd-bar,.rd-foot,.ne-bar,.listen-cover,
.qz-cell,.chip,.input,.seg,.dr-tabs,.toast{
  background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);
  backdrop-filter:blur(var(--blur)) saturate(1.5);
  border:1px solid var(--glass-brd);
}

/* ---------- 卡片 / 分割 ---------- */
.card{background:var(--glass);border-radius:20px;padding:24px;box-shadow:var(--glass-sh);}
.card-flat{background:var(--glass-2);border-radius:20px;padding:24px;border:1px solid var(--glass-brd);box-shadow:var(--sh);}
.divider{height:1px;background:var(--line);}
.hairline{height:1px;background:var(--line);opacity:.6;}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:none;background:none;cursor:pointer;font-family:var(--font-cn);
  font-size:14px;letter-spacing:.05em;color:var(--text);
  border-radius:14px;padding:12px 20px;transition:opacity .15s ease,transform .15s ease,box-shadow .18s ease;
}
.btn:active{opacity:.85;transform:scale(.985);}
.btn-primary{
  background:linear-gradient(135deg,var(--mint-700),var(--mint-800));
  color:#fff;box-shadow:0 8px 20px rgba(31,94,78,.28);
}
.btn-ghost{background:var(--glass);border:1px solid var(--glass-brd);color:var(--text);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.btn-soft{background:rgba(230,246,239,.75);border:1px solid rgba(42,127,104,.12);color:var(--text);}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:12px;}
.btn-block{width:100%;}
.btn[disabled]{opacity:.4;cursor:default;box-shadow:none;}
.iconbtn{
  width:34px;height:34px;border:none;background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--sub);border-radius:50%;
}
.iconbtn:active{background:rgba(42,127,104,.08);}

/* ---------- 表单 ---------- */
.field{margin-bottom:16px;}
.field-label{font-size:12px;color:var(--sub);letter-spacing:.05em;margin-bottom:8px;}
.input{
  width:100%;background:var(--glass);border:1px solid var(--glass-brd);border-radius:14px;
  padding:12px 14px;font-size:15px;color:var(--text);font-family:var(--font-cn);
  letter-spacing:.02em;outline:none;line-height:1.6;
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.4);backdrop-filter:blur(var(--blur)) saturate(1.4);
}
.input:focus{border-color:var(--mint-400);box-shadow:0 0 0 3px rgba(126,211,184,.22);}
textarea.input{resize:none;line-height:1.8;}
select.input{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234F6E67' stroke-width='1.5' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:34px;}
.input-wrap{position:relative;display:flex;align-items:center;}
.input-wrap .input{padding-right:44px;}
.input-wrap .eye{position:absolute;right:10px;}

.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{
  border:1px solid var(--glass-brd);background:var(--glass);border-radius:12px;
  padding:7px 12px;font-size:13px;color:var(--text);cursor:pointer;letter-spacing:.02em;
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));
}
.chip.on{background:linear-gradient(135deg,var(--mint-700),var(--mint-800));color:#fff;border-color:transparent;}
.chip.mint.on{background:var(--mint-700);border-color:var(--mint-700);color:#fff;}
.chip.blue.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.chip.pink.on{background:var(--pink);border-color:var(--pink);color:#fff;}
.chip.cream.on{background:var(--cream);border-color:var(--cream);color:#fff;}

/* ---------- 引导 / 验证 ---------- */
.splash{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:0 32px;background:transparent;text-align:center;
}
.splash .quote{
  font-family:var(--font-cn-title);font-size:17px;line-height:2.0;color:var(--text);
  letter-spacing:.03em;
}
.splash .quote p{margin:0 0 4px;}

/* ---------- 迷你播放条 ---------- */
.mini{
  flex:0 0 auto;display:flex;align-items:center;gap:10px;
  padding:8px 20px;border-top:1px solid var(--glass-brd);background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);
  cursor:pointer;
}
.mini .name{flex:1;font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini .eq{display:flex;align-items:flex-end;gap:2px;height:12px;}
.mini .eq i{width:2px;background:var(--mint-600);height:5px;border-radius:1px;}
.mini.playing .eq i{animation:eq .9s infinite ease-in-out;}
.mini.playing .eq i:nth-child(2){animation-delay:.2s;}
.mini.playing .eq i:nth-child(3){animation-delay:.4s;}
@keyframes eq{0%,100%{height:4px;}50%{height:12px;}}

/* ---------- 覆盖层 ---------- */
.overlay{
  position:absolute;inset:0;z-index:60;
  background:rgba(236,248,244,.62);
  -webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);
  display:none;flex-direction:column;
}
.overlay.show{display:flex;animation:fadeUp .24s ease-out;}
@keyframes fadeUp{from{opacity:0;transform:scaleY(.97);}to{opacity:1;transform:scaleY(1);}}
.ov-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 20px 10px;}
.ov-body{flex:1;overflow-y:auto;padding:0 20px 24px;}
.ov-body::-webkit-scrollbar{width:0;}

/* ---------- toast ---------- */
.toast{
  position:absolute;left:50%;bottom:88px;transform:translateX(-50%) translateY(8px);
  background:rgba(31,59,52,.86);color:#fff;font-size:12px;letter-spacing:.03em;
  padding:9px 18px;border-radius:14px;z-index:99;opacity:0;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;white-space:nowrap;
  box-shadow:0 10px 26px rgba(31,59,52,.24);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ============================================================
   今日 · 便利贴墙（玻璃便签）
   ============================================================ */
.cork{
  flex:1;overflow-y:auto;padding:16px 16px 26px;
  background:
    radial-gradient(300px 260px at 20% 12%, rgba(126,211,184,.35), transparent 65%),
    radial-gradient(320px 300px at 85% 70%, rgba(148,196,222,.28), transparent 65%),
    linear-gradient(180deg,#EDF8F4 0%,#E4F3EE 100%);
}
.cork::-webkit-scrollbar{width:0;}
.cork-head{padding:8px 4px 16px;display:flex;align-items:flex-end;justify-content:space-between;}
.notes{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.note{
  position:relative;min-height:112px;padding:14px 14px 12px;border-radius:14px;
  border:1px solid rgba(255,255,255,.75);
  -webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);
  box-shadow:0 8px 20px rgba(31,59,52,.08);cursor:pointer;
  transition:transform .2s ease,opacity .2s ease;
}
.note::after{
  content:'';position:absolute;top:0;right:0;width:0;height:0;
  border-top:10px solid rgba(31,59,52,.06);border-left:10px solid transparent;
}
.note .t{font-family:var(--font-cn-title);font-size:15px;line-height:1.5;letter-spacing:.03em;}
.note .n{font-size:12px;color:rgba(31,59,52,.62);line-height:1.7;margin-top:6px;}
.note .done{position:absolute;right:10px;bottom:8px;color:rgba(31,59,52,.4);}
.note.mint{background:linear-gradient(160deg,rgba(205,239,226,.92),rgba(205,239,226,.7));}
.note.blue{background:linear-gradient(160deg,rgba(222,235,243,.92),rgba(222,235,243,.7));}
.note.pink{background:linear-gradient(160deg,rgba(251,234,236,.92),rgba(251,234,236,.7));}
.note.cream{background:linear-gradient(160deg,rgba(250,241,224,.92),rgba(250,241,224,.7));}
.note.tear{animation:tear .2s ease-in forwards;}
@keyframes tear{to{transform:scale(.55) rotate(14deg);opacity:0;}}
.cork-empty{text-align:center;padding:60px 20px;color:var(--sub);font-size:13px;}

/* ============================================================
   Chat
   ============================================================ */
.chat-head{
  flex:0 0 auto;display:flex;align-items:center;gap:10px;
  padding:6px 20px 12px;border-bottom:1px solid var(--glass-brd);
  background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);
}
.avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--mint-300),var(--mint-500));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-cn-title);font-size:15px;color:#fff;letter-spacing:0;
  box-shadow:0 4px 12px rgba(42,127,104,.28);
}
.chat-body{flex:1;overflow-y:auto;padding:16px 20px 8px;background:transparent;}
.chat-body::-webkit-scrollbar{width:0;}
.stamp{text-align:center;font-size:11px;color:var(--faint);margin:14px 0 10px;font-family:var(--font-en);}
.msg{display:flex;margin-bottom:10px;}
.msg.me{justify-content:flex-end;}
.bubble{
  max-width:70%;padding:10px 14px;font-size:15px;line-height:1.6;
  border-radius:20px;white-space:pre-wrap;word-break:break-word;
}
.msg.dream .bubble{
  background:var(--glass-2);color:var(--text);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.4);backdrop-filter:blur(var(--blur)) saturate(1.4);
  border-top-left-radius:6px;box-shadow:0 6px 18px rgba(31,59,52,.06);
}
.msg.me .bubble{
  background:linear-gradient(135deg,var(--mint-800),var(--mint-700));color:#fff;
  border-top-right-radius:6px;box-shadow:0 8px 20px rgba(31,94,78,.24);
}
.bubble .dot3{display:inline-block;width:14px;}
.typing{display:inline-flex;gap:3px;align-items:center;}
.typing i{width:4px;height:4px;border-radius:50%;background:var(--mint-600);animation:blink 1.2s infinite;}
.typing i:nth-child(2){animation-delay:.2s;}.typing i:nth-child(3){animation-delay:.4s;}
@keyframes blink{0%,60%,100%{opacity:.25;}30%{opacity:1;}}

.composer{flex:0 0 auto;padding:10px 20px 14px;background:var(--glass);border-top:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.composer-row{display:flex;align-items:flex-end;gap:8px;}
.composer .input{border-radius:22px;padding:11px 16px;max-height:96px;}
.send{
  flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--mint-700),var(--mint-800));color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(31,94,78,.28);
}
.send[disabled]{background:rgba(147,179,170,.35);color:#fff;box-shadow:none;}
.word-toggle{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;
  border:1px solid var(--glass-brd);border-radius:12px;padding:5px 10px;
  font-size:11px;color:var(--sub);cursor:pointer;background:var(--glass);letter-spacing:.03em;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.word-toggle.on{background:var(--mint-700);border-color:var(--mint-700);color:#fff;}

/* ============================================================
   番茄
   ============================================================ */
.pomo{flex:1;display:flex;flex-direction:column;overflow-y:auto;}
.pomo::-webkit-scrollbar{width:0;}
.pomo-morning{background:linear-gradient(180deg,#F7FCFA 0%,#E8F7F0 55%,#DFF3EE 100%);}
.pomo-day{background:linear-gradient(180deg,#F5FBF9 0%,#E4F4F5 100%);}
.pomo-dusk{background:linear-gradient(180deg,#FBF8F2 0%,#F5EADA 100%);}
.pomo-night{background:linear-gradient(180deg,#17302C 0%,#25463F 55%,#3C6A5C 100%);}
.pomo-night .pomo-stage{color:#EAF6F1;}
.pomo-night .card{
  background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.22);color:#EAF6F1;
}
.pomo-night .sub,.pomo-night .h3,.pomo-night .fund-split{color:rgba(234,246,241,.72);}
.pomo-night .bar{background:rgba(255,255,255,.16);}

.pomo-stage{
  flex:0 0 auto;position:relative;min-height:330px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:12px 20px;color:var(--text);
}
.pomo-deco{position:absolute;inset:0;pointer-events:none;opacity:.5;}
.pomo-deco span{position:absolute;font-size:16px;filter:blur(.3px);}
.pet-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2;}
.pet-emoji{font-size:48px;line-height:1;transform-origin:50% 80%;}
.pet-name{font-family:var(--font-cn-title);font-size:14px;color:var(--sub);letter-spacing:.05em;}
.pet-idle .pet-emoji{animation:breathe 2s ease-in-out infinite,float 3s ease-in-out infinite;}
.pet-away .pet-emoji{filter:grayscale(1);transform:scale(.9);opacity:.6;}
.pet-happy .pet-emoji{animation:jump .7s ease-out;filter:brightness(1.1) saturate(1.2);}
.pet-sad .pet-emoji{filter:grayscale(.5) brightness(.8);transform:scaleX(-1);}
.pet-sleep .pet-emoji{filter:blur(.5px) brightness(.9);}
@keyframes breathe{0%,100%{transform:scale(1);}50%{transform:scale(1.02);}}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@keyframes jump{0%{transform:translateY(0) scale(1);}35%{transform:translateY(-20px) scale(1.06);}65%{transform:translateY(0) scale(1);}82%{transform:translateY(-7px);}100%{transform:translateY(0);}}
.pet-hearts{position:absolute;font-size:16px;animation:fadeUp .6s ease-out;}

.props{display:flex;gap:14px;margin-top:10px;font-size:20px;z-index:2;min-height:24px;opacity:.9;}

.ring-wrap{position:relative;width:168px;height:168px;margin-top:18px;z-index:2;}
.ring{transform:rotate(-90deg);}
.ring-bg{fill:none;stroke:rgba(31,59,52,.10);stroke-width:3;}
.ring-fg{fill:none;stroke:var(--mint-500);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .4s linear;}
.ring-time{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;
}
.ring-time .t{
  font-family:var(--font-en-title);font-size:44px;line-height:1;
  color:rgba(31,59,52,.78);letter-spacing:.02em;
}
.ring-time .l{font-size:11px;color:var(--sub);letter-spacing:.14em;}
.pomo-night .ring-time .t{color:rgba(240,251,247,.9);}
.pomo-night .ring-bg{stroke:rgba(255,255,255,.16);}

.pomo-ops{display:flex;gap:10px;margin-top:18px;z-index:2;}
.pomo-line{
  margin-top:16px;font-family:var(--font-cn-title);font-size:13px;
  color:var(--sub);text-align:center;max-width:280px;line-height:1.9;z-index:2;
}
.pomo-night .pomo-line{color:rgba(240,251,247,.75);}

.pomo-panels{flex:0 0 auto;padding:16px 20px 26px;display:flex;flex-direction:column;gap:16px;background:transparent;}
.fund-head{display:flex;align-items:baseline;justify-content:space-between;}
.fund-num{font-family:var(--font-en-title);font-size:34px;line-height:1.1;color:var(--text);}
.fund-num .y{font-size:18px;color:var(--sub);margin-right:4px;}
.bar{height:6px;border-radius:3px;background:rgba(42,127,104,.14);overflow:hidden;margin-top:14px;}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--mint-400),var(--mint-600));border-radius:3px;transition:width .4s ease;}
.bar.mint i{background:linear-gradient(90deg,var(--mint-400),var(--mint-600));}
.fund-split{display:flex;gap:16px;margin-top:12px;font-size:12px;color:var(--sub);}
.fund-split b{font-weight:400;color:var(--text);font-family:var(--font-en);}

.pet-card .row{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:13px;}
.stars{letter-spacing:2px;font-size:13px;color:var(--mint-600);}
.stars .off{color:rgba(42,127,104,.18);}
.lv{font-size:12px;color:var(--sub);}
.dream-say{
  margin-top:16px;padding:12px 14px;border-radius:14px;
  background:linear-gradient(140deg,rgba(222,238,246,.8),rgba(222,238,246,.55));
  border:1px solid rgba(255,255,255,.7);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  font-family:var(--font-cn-title);font-size:13px;line-height:1.9;color:var(--text);
}
.pet-ops{display:flex;gap:8px;margin-top:16px;}
.pet-ops .btn{flex:1;}

/* 认养证书 */
.cert{
  background:var(--glass-2);border-radius:20px;padding:28px 24px;
  border:1px solid var(--glass-brd);box-shadow:var(--glass-sh);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);
}
.cert .c-title{
  font-family:var(--font-cn-title);font-size:20px;text-align:center;letter-spacing:.14em;
}
.cert .c-sub{text-align:center;font-family:var(--font-en);font-size:10px;color:var(--faint);letter-spacing:.3em;margin-top:6px;}
.cert .c-line{height:1px;background:var(--line);margin:18px 0;}
.cert dl{margin:0;}
.cert .row{display:flex;gap:12px;margin-bottom:10px;font-size:13px;line-height:1.9;}
.cert .row .k{color:var(--sub);flex:0 0 60px;}
.cert .row .v{flex:1;font-family:var(--font-cn-title);}
.cert .msg{
  margin-top:16px;padding:14px 16px;border-radius:14px;
  background:linear-gradient(140deg,rgba(250,241,224,.85),rgba(250,241,224,.6));
  border:1px solid rgba(255,255,255,.7);
  font-family:var(--font-cn-title);font-size:14px;line-height:2.0;
}
.cert .seal{margin-top:20px;text-align:right;font-size:11px;color:var(--faint);letter-spacing:.1em;}

/* ============================================================
   信箱
   ============================================================ */
.mail-head{flex:0 0 auto;padding:2px 20px 10px;display:flex;align-items:center;justify-content:space-between;}
.seg{display:flex;border:1px solid var(--glass-brd);border-radius:12px;overflow:hidden;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);}
.seg button{border:none;background:transparent;padding:5px 12px;font-size:11px;color:var(--sub);cursor:pointer;font-family:var(--font-cn);letter-spacing:.05em;}
.seg button.on{background:linear-gradient(135deg,var(--mint-700),var(--mint-800));color:#fff;}

.mail-body{flex:1;overflow-y:auto;background:transparent;padding:0 20px 26px;}
.mail-body::-webkit-scrollbar{width:0;}
.month{
  display:flex;align-items:center;gap:12px;margin:18px 0 12px;
  font-family:var(--font-cn-title);font-size:13px;color:var(--sub);letter-spacing:.1em;
}
.month::before,.month::after{content:'';flex:1;height:1px;background:var(--line);}

.letter{
  border-radius:18px;padding:16px 18px;margin-bottom:12px;box-shadow:var(--glass-sh);
  cursor:pointer;position:relative;transition:transform .18s ease;
  border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.4);backdrop-filter:blur(var(--blur)) saturate(1.4);
}
.letter:active{transform:scale(.99);}
.letter.dream{background:linear-gradient(150deg,rgba(222,238,246,.8),rgba(222,238,246,.5));}
.letter.mine{background:linear-gradient(150deg,rgba(250,241,224,.82),rgba(250,241,224,.5));}
.letter .meta{display:flex;align-items:center;gap:8px;font-family:var(--font-en);font-size:11px;color:var(--sub);letter-spacing:.05em;}
.letter .who{font-family:var(--font-cn-title);font-size:13px;color:var(--text);}
.letter .prev{
  margin-top:8px;font-family:var(--font-cn-title);font-size:14px;line-height:1.9;
  color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.letter .sign{margin-top:8px;text-align:right;font-size:11px;color:var(--sub);font-family:var(--font-cn-title);}

/* 时间轴 */
.timeline{position:relative;padding-left:20px;margin-top:18px;}
.timeline::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line);}
.tl-item{position:relative;margin-bottom:20px;cursor:pointer;}
.tl-item::before{content:'';position:absolute;left:-19px;top:7px;width:9px;height:9px;border-radius:50%;background:#fff;border:1px solid var(--faint);}
.tl-item.dream::before{background:var(--blue);border-color:var(--blue);}
.tl-item.mine::before{background:var(--cream);border-color:var(--cream);}
.tl-item .d{font-family:var(--font-en);font-size:11px;color:var(--sub);letter-spacing:.05em;}
.tl-item .s{margin-top:3px;font-family:var(--font-cn-title);font-size:14px;line-height:1.8;}

/* 信纸（玻璃纸感，保留纹理） */
.paper{
  position:relative;background:
    repeating-linear-gradient(180deg,rgba(0,0,0,0) 0 28px,rgba(42,127,104,.03) 28px 29px),
    rgba(255,255,255,.82);
  border-radius:14px;padding:26px 22px;
  border:1px solid var(--glass-brd);
  box-shadow:var(--glass-sh);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  animation:fadeUp .2s ease-out;
}
.paper::after{content:'';position:absolute;left:0;right:0;top:52%;height:1px;background:rgba(42,127,104,.07);}
.paper .p-date{font-family:var(--font-cn-title);font-size:13px;color:var(--sub);letter-spacing:.05em;}
.paper .p-weather{position:absolute;right:20px;top:22px;font-size:15px;}
.paper .p-text{
  margin-top:18px;font-family:var(--font-cn-title);font-size:15px;line-height:2.0;
  letter-spacing:.02em;text-indent:2em;white-space:pre-wrap;
}
.paper .p-sign{margin-top:18px;text-align:right;font-family:var(--font-cn-title);font-size:14px;color:var(--text);}
.paper .p-sign .dash{color:var(--sub);margin-right:6px;}
.paper .p-who{font-family:var(--font-en);font-size:10px;color:var(--faint);letter-spacing:.2em;}
.entry{margin-bottom:14px;}
.entry .e-label{font-size:11px;color:var(--faint);letter-spacing:.1em;margin-bottom:6px;}

/* ============================================================
   更多 · 设置行
   ============================================================ */
.rows{background:var(--glass);border-radius:20px;box-shadow:var(--glass-sh);overflow:hidden;
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.row-item{
  display:flex;align-items:center;gap:12px;padding:15px 20px;
  border-bottom:1px solid var(--line);cursor:pointer;background:transparent;
}
.row-item:last-child{border-bottom:none;}
.row-item .ri-icon{color:var(--mint-700);display:flex;}
.row-item .ri-main{flex:1;}
.row-item .ri-title{font-size:14px;letter-spacing:.03em;}
.row-item .ri-desc{font-size:11px;color:var(--sub);margin-top:2px;}
.row-item .ri-right{color:var(--faint);font-size:12px;display:flex;align-items:center;gap:6px;}

/* 一起听 */
.listen-cover{
  width:100%;aspect-ratio:1/1;border-radius:20px;
  background:linear-gradient(150deg,rgba(222,238,246,.85),rgba(205,239,226,.6));
  display:flex;align-items:center;justify-content:center;box-shadow:var(--glass-sh);
  border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.4);backdrop-filter:blur(var(--blur)) saturate(1.4);
}
.listen-cover .cd{width:120px;height:120px;border-radius:50%;border:1px solid rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.track{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.track.on .t-name{color:var(--mint-700);}
.track .t-idx{font-family:var(--font-en);font-size:11px;color:var(--faint);width:18px;}
.track .t-main{flex:1;}
.track .t-name{font-size:14px;}
.track .t-note{font-size:11px;color:var(--sub);margin-top:2px;}
.dream-listening{
  display:flex;gap:10px;align-items:flex-start;margin-top:16px;
  padding:14px 16px;border-radius:14px;
  background:linear-gradient(140deg,rgba(222,238,246,.8),rgba(222,238,246,.5));
  border:1px solid rgba(255,255,255,.7);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.dream-listening .dl-t{font-family:var(--font-cn-title);font-size:13px;line-height:1.9;}

/* 一起读 */
.read-body{
  font-family:var(--font-cn-title);font-size:15px;line-height:2.0;
  letter-spacing:.02em;text-indent:2em;white-space:pre-wrap;
}
.read-body mark{background:var(--pink-bg);color:var(--text);text-indent:0;}
.anno{border-radius:14px;padding:12px 16px;font-size:13px;line-height:1.7;margin-bottom:8px;
  border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
.anno.me{background:linear-gradient(140deg,rgba(251,234,236,.85),rgba(251,234,236,.55));color:var(--text);}
.anno.dream{background:linear-gradient(140deg,rgba(222,235,243,.85),rgba(222,235,243,.55));color:var(--text);}
.anno .a-who{font-size:10px;letter-spacing:.15em;color:rgba(31,59,52,.5);margin-bottom:4px;font-family:var(--font-en);}

/* 讲题 */
.tutor-head{flex:0 0 auto;padding:6px 20px 12px;border-bottom:1px solid var(--glass-brd);display:flex;align-items:center;gap:10px;
  background:var(--glass);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.tutor-badge{font-size:11px;color:var(--mint-700);border:1px solid rgba(42,127,104,.25);background:rgba(230,246,239,.75);border-radius:12px;padding:3px 8px;letter-spacing:.05em;}
.msg.tutor .bubble{background:var(--glass-2);border:1px solid rgba(42,127,104,.18);border-top-left-radius:6px;}

/* 空状态 */
.empty{text-align:center;padding:56px 20px;color:var(--sub);font-size:13px;line-height:2;}
.empty .e-ic{color:var(--mint-400);margin-bottom:12px;}

/* 流式光标 */
.caret{display:inline-block;width:2px;height:1em;background:var(--mint-600);vertical-align:-2px;margin-left:2px;animation:blink 1s steps(1) infinite;}

/* ============================================================
   主屏 · 图标网格
   ============================================================ */
.home{flex:1;min-height:0;overflow-y:auto;padding:4px 20px 20px;background:transparent;}
.home::-webkit-scrollbar{width:0;}
.home-head{padding:6px 2px 18px;}

.widget{display:flex;align-items:center;background:var(--glass);border-radius:20px;padding:16px 8px;
  box-shadow:var(--glass-sh);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.wg-item{flex:1;text-align:center;}
.wg-num{font-family:var(--font-en-title);font-size:22px;line-height:1.2;color:var(--text);}
.wg-num span{font-size:13px;color:var(--sub);}
.wg-num .y{font-size:14px;color:var(--sub);margin-right:2px;}
.wg-sep{width:1px;height:28px;background:var(--line);}
.wg-label{font-size:11px;color:var(--sub);margin-top:2px;letter-spacing:.05em;}

.home-playing{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;
  background:var(--glass);border-radius:16px;box-shadow:var(--sh);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));cursor:pointer;}
.home-playing .hp-name{flex:1;font-size:13px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px 10px;margin-top:22px;}
.app-icon{background:none;border:none;padding:0;cursor:pointer;position:relative;
  display:flex;flex-direction:column;align-items:center;gap:6px;}
.ai-box{width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);
  box-shadow:0 8px 20px rgba(31,59,52,.09), inset 0 1px 0 rgba(255,255,255,.75);
  transition:transform .18s ease;}
.app-icon:active .ai-box{transform:scale(.94);}
/* 主屏图标统一浅蓝玻璃：tint 只保留语义，视觉一律走蓝 */
.ai-box.mint,.ai-box.blue,.ai-box.pink,.ai-box.cream,.ai-box.plain{
  background:linear-gradient(150deg,rgba(222,235,243,.92),rgba(222,235,243,.58));
  color:var(--blue);}
.ai-name{font-size:11px;color:var(--text);letter-spacing:.03em;}
.app-dot{position:absolute;top:2px;right:12px;width:7px;height:7px;border-radius:50%;background:var(--blue);
  box-shadow:0 0 0 2px rgba(255,255,255,.85);}
.app-badge{position:absolute;top:-2px;right:6px;min-width:16px;height:16px;border-radius:8px;
  background:var(--blue);color:#fff;font-size:10px;line-height:16px;text-align:center;padding:0 4px;font-family:var(--font-en);}
.home-foot{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:26px;color:var(--faint);font-size:11px;}

.homebar{flex:0 0 auto;height:22px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;cursor:pointer;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}
.homebar span{width:120px;height:4px;border-radius:2px;background:rgba(31,59,52,.22);}

/* App 内页统一头部 */
.app-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 14px 10px;
  border-bottom:1px solid var(--glass-brd);background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.ah-right{margin-left:auto;display:flex;align-items:center;gap:2px;}

/* ============================================================
   今日 · 计划输入 / 便利贴上的两种留言
   ============================================================ */
.plan-row{display:flex;align-items:center;gap:6px;margin-bottom:10px;}
.plan-row .input{flex:1;}
.note .n-dream{font-family:var(--font-cn-title);font-size:12px;color:rgba(31,59,52,.7);line-height:1.8;margin-top:6px;}
.note .n-mine{font-family:var(--font-en-title);font-size:13px;color:rgba(31,59,52,.82);line-height:1.7;margin-top:6px;letter-spacing:.02em;}
.note .n-done{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:11px;color:rgba(31,59,52,.5);}

/* ============================================================
   宠物头像 / 缩略图
   ============================================================ */
.pet-photo{display:block;border-radius:50%;background-size:cover;background-position:center;
  background-color:var(--mint-200);box-shadow:0 6px 16px rgba(31,59,52,.14);
  border:2px solid rgba(255,255,255,.85);}
.pet-mini{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;}

.thumb{display:inline-block;width:64px;height:64px;border-radius:14px;
  background:rgba(255,255,255,.6) center/cover no-repeat;border:1px solid var(--glass-brd);margin:0 6px 6px 0;}
.msg-imgs{margin-top:6px;}
.pending-imgs{display:flex;flex-wrap:wrap;margin-bottom:8px;}
.pi-wrap{position:relative;display:inline-block;margin-right:6px;}
.pi-del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;
  background:var(--mint-800);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.msg-act{margin-top:4px;font-size:10px;color:var(--faint);letter-spacing:.06em;cursor:pointer;}
.msg.me .msg-act{text-align:right;}

/* ============================================================
   单词本
   ============================================================ */
.word-row{display:flex;align-items:center;gap:6px;padding:12px 0;border-bottom:1px solid var(--line);}
.wr-main{flex:1;}
.wr-w{font-family:var(--font-en-title);font-size:18px;letter-spacing:.03em;}
.wr-m{font-size:12px;color:var(--sub);margin-top:2px;}

/* ============================================================
   错题库
   ============================================================ */
.mk-item{background:var(--glass);border-radius:18px;padding:16px;margin-bottom:12px;
  box-shadow:var(--glass-sh);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.4);backdrop-filter:blur(var(--blur)) saturate(1.4);}
.mk-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.mk-title{font-family:var(--font-cn-title);font-size:15px;}
.mk-folder{display:inline-block;margin-top:6px;font-size:10px;color:var(--blue);
  background:var(--blue-bg);border-radius:12px;padding:2px 8px;letter-spacing:.05em;}
.mk-text{font-size:12px;color:var(--sub);margin-top:8px;line-height:1.7;}
.mk-ops{display:flex;gap:8px;margin-top:10px;}
.mk-ops .btn{padding:5px 12px;font-size:12px;}

/* ============================================================
   一起读 · 书架 + 阅读器
   ============================================================ */
.shelf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.book{cursor:pointer;}
.book-cover{height:132px;border-radius:14px;background:rgba(255,255,255,.6) center/cover no-repeat;
  box-shadow:0 8px 18px rgba(31,59,52,.1);border:1px solid var(--glass-brd);}
.book-title{font-family:var(--font-cn-title);font-size:13px;margin-top:8px;line-height:1.4;}
.book-meta{font-size:10px;color:var(--faint);margin-top:2px;}

.reader{flex:1;min-height:0;display:flex;flex-direction:column;background:transparent;}
.rd-bar{flex:0 0 auto;padding:6px 20px;border-bottom:1px solid var(--glass-brd);background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.rd-pages{flex:1;min-height:0;overflow-y:auto;padding:14px 0;}
.rd-pages::-webkit-scrollbar{width:0;}
.rd-loading{text-align:center;padding:60px 20px;color:var(--sub);font-size:13px;}
.pg{position:relative;margin:0 auto 14px;width:calc(100% - 32px);background:rgba(255,255,255,.9);
  box-shadow:0 8px 22px rgba(31,59,52,.08);border-radius:8px;overflow:hidden;}
.pg-canvas{display:block;width:100%;height:auto;}
.pg-no{position:absolute;left:0;right:0;top:40%;text-align:center;color:var(--faint);font-size:12px;}
.mk-pin{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid #fff;
  cursor:pointer;transform:translate(-50%,-50%);}
.mk-pin.me{background:var(--pink);}
.mk-pin.dream{background:var(--blue);}
.rd-foot{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:10px 20px 14px;
  border-top:1px solid var(--glass-brd);background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.toc-item{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;
  cursor:pointer;font-family:var(--font-cn-title);}

/* 一起听 · 网易云外链 */
.ne-frame{margin-top:16px;border-radius:16px;overflow:hidden;background:var(--glass);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
.ne-frame iframe{width:100%;height:110px;border:0;display:block;}
.track .iconbtn{flex:0 0 30px;}

/* ============================================================
   状态栏（只有时间 + 日期）
   ============================================================ */
.sb-date{font-size:12px;color:var(--sub);letter-spacing:.04em;}

/* ============================================================
   单词练习
   ============================================================ */
.qz-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.qz-col{display:flex;flex-direction:column;gap:8px;}
.qz-cell{
  min-height:46px;padding:10px 8px;border-radius:14px;border:1px solid var(--glass-brd);
  background:var(--glass);font-size:13px;line-height:1.5;color:var(--text);
  cursor:pointer;transition:opacity .2s,background .18s,transform .18s;text-align:center;
  display:flex;align-items:center;justify-content:center;word-break:break-word;
  font-family:var(--font-cn);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
}
.qz-cell.l{font-family:var(--font-en-title);font-size:16px;letter-spacing:.03em;}
.qz-cell.sel{background:linear-gradient(135deg,var(--mint-700),var(--mint-800));color:#fff;border-color:transparent;}
.qz-cell.ok{background:linear-gradient(140deg,rgba(205,239,226,.95),rgba(205,239,226,.7));border-color:var(--mint-500);color:var(--ink);}
.qz-cell.bad{background:linear-gradient(140deg,rgba(251,234,236,.95),rgba(251,234,236,.7));border-color:var(--pink);animation:qzshake .35s;}
.qz-cell.gone{opacity:0;pointer-events:none;transform:scale(.96);}
@keyframes qzshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

.qz-card{background:var(--glass);border-radius:22px;padding:24px;box-shadow:var(--glass-sh);
  border:1px solid var(--glass-brd);text-align:center;
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.qz-prompt{font-family:var(--font-en-title);font-size:24px;letter-spacing:.04em;line-height:1.4;}
.qz-fb{margin-top:14px;font-size:13px;letter-spacing:.03em;}
.qz-fb.ok{color:var(--mint-700);}
.qz-fb.bad{color:var(--pink);}
.qz-score{text-align:center;padding:16px 0 8px;}
.qz-score .n{font-family:var(--font-en-title);font-size:56px;line-height:1;color:var(--text);}
.qz-score .n span{font-size:22px;color:var(--sub);margin-left:2px;}

/* ============================================================
   共同基金 · 他的投入记录
   ============================================================ */
.fund-today{margin-top:14px;font-size:12px;color:var(--text);letter-spacing:.02em;}
.fund-today b{font-family:var(--font-en-title);font-size:15px;color:var(--mint-700);}
.fund-logs{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;}
.fl-row{display:flex;gap:8px;align-items:baseline;padding:3px 0;}
.fl-amt{flex:0 0 46px;font-family:var(--font-en);font-size:11px;color:var(--mint-700);}
.fl-why{flex:1;font-size:11px;color:var(--sub);line-height:1.6;}

/* ============================================================
   日记
   ============================================================ */
.dr-tabs{display:flex;gap:8px;background:rgba(230,246,239,.7);border-radius:16px;padding:4px;
  border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);}
.dr-tab{flex:1;border:none;background:none;padding:8px 4px;border-radius:12px;
  font-size:12px;color:var(--sub);cursor:pointer;letter-spacing:.03em;}
.dr-tab.on{background:var(--glass-2);color:var(--text);box-shadow:0 4px 12px rgba(31,59,52,.08);}

.dr-card{display:flex;gap:14px;align-items:center;background:var(--glass);border-radius:18px;
  padding:14px;margin-bottom:12px;box-shadow:var(--glass-sh);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);cursor:pointer;}
.dr-cover{flex:0 0 52px;width:52px;height:70px;border-radius:12px;background:rgba(255,255,255,.6) center/cover no-repeat;}
.dr-cover.mint{background:linear-gradient(150deg,var(--mint-300),var(--mint-500));}
.dr-cover.blue{background:linear-gradient(150deg,#CFE2EE,var(--blue));}
.dr-cover.pink{background:linear-gradient(150deg,#F5DDE0,var(--pink));}
.dr-cover.cream{background:linear-gradient(150deg,#F2E6CC,var(--cream));}
.dr-main{flex:1;min-width:0;}
.dr-name{font-family:var(--font-cn-title);font-size:15px;letter-spacing:.04em;}
.dr-last{font-size:12px;color:var(--sub);margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dr-meta{font-size:10px;color:var(--faint);margin-top:4px;letter-spacing:.05em;}

.dr-hero{display:flex;gap:14px;align-items:center;background:var(--glass);border-radius:18px;
  padding:14px;box-shadow:var(--glass-sh);border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.5);backdrop-filter:blur(var(--blur)) saturate(1.5);}
.dr-hero-cover{flex:0 0 56px;width:56px;height:76px;border-radius:12px;background:rgba(255,255,255,.6) center/cover no-repeat;}
.dr-hero-cover.mint{background:linear-gradient(150deg,var(--mint-300),var(--mint-500));}
.dr-hero-cover.blue{background:linear-gradient(150deg,#CFE2EE,var(--blue));}
.dr-hero-cover.pink{background:linear-gradient(150deg,#F5DDE0,var(--pink));}
.dr-hero-cover.cream{background:linear-gradient(150deg,#F2E6CC,var(--cream));}
.dr-hero-main{flex:1;min-width:0;}

.dr-link{display:block;font-size:11px;color:var(--blue);word-break:break-all;line-height:1.7;}

/* ---- 本子里面：备忘录列表 ---- */
.nt-list{margin-top:8px;}
.nt-item{padding:14px 2px;border-bottom:1px solid var(--line);cursor:pointer;}
.nt-item:active{background:rgba(230,246,239,.5);border-radius:12px;}
.nt-row{display:flex;gap:10px;align-items:flex-start;}
.nt-main{flex:1;min-width:0;}
.nt-title{font-family:var(--font-cn-title);font-size:15px;letter-spacing:.03em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nt-title.dream{font-family:var(--font-en-title);font-size:16px;letter-spacing:.05em;color:#2F5A4F;}
.nt-sub{font-family:var(--font-en);font-size:10px;color:var(--faint);letter-spacing:.06em;margin-top:3px;}
.nt-abs{font-size:12px;color:var(--sub);line-height:1.7;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.nt-thumb{flex:0 0 44px;width:44px;height:44px;border-radius:12px;
  background:rgba(255,255,255,.6) center/cover no-repeat;border:1px solid var(--glass-brd);margin-top:2px;}

.nt-cmt{margin-top:8px;font-size:11px;color:var(--sub);line-height:1.7;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nt-cmt.big{white-space:normal;margin-top:12px;padding:12px 14px;border-radius:14px;font-size:13px;
  border:1px solid var(--glass-brd);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
.nt-cmt.big.dream{background:linear-gradient(140deg,rgba(222,238,246,.85),rgba(222,238,246,.55));
  border-left:2px solid var(--blue);
  font-family:var(--font-en-title);font-size:15px;line-height:1.9;letter-spacing:.05em;color:#2F5A4F;}
.nt-cmt.big.me{background:linear-gradient(140deg,rgba(250,241,224,.85),rgba(250,241,224,.55));border-left:2px solid var(--cream);}
.nt-cmt-who{color:var(--faint);font-size:10px;letter-spacing:.08em;margin-right:6px;}
.nt-cmt.big .nt-cmt-who{display:block;margin-bottom:3px;}

/* ---- 单条全文 ---- */
.nt-view{padding:4px 0 8px;}
.nt-tag{display:inline-block;font-size:10px;color:var(--blue);background:var(--blue-bg);
  border-radius:12px;padding:2px 8px;letter-spacing:.05em;margin-bottom:10px;}
.nt-text{font-family:var(--font-cn-title);font-size:16px;line-height:2;letter-spacing:.03em;
  white-space:pre-wrap;word-break:break-word;}
/* 他写的：换字体，一眼能分开 */
.nt-view.dream .nt-text{font-family:var(--font-en-title);font-size:17px;line-height:2;
  letter-spacing:.06em;color:#2F5A4F;}
.nt-imgs{margin-top:14px;}
.nt-links{margin-top:10px;}

/* ---- 全屏编辑器（备忘录） ---- */
.ne-btn{border:none;background:none;font-size:13px;color:var(--mint-700);cursor:pointer;
  letter-spacing:.03em;padding:4px 2px;min-width:40px;}
.ne-btn.ne-done{font-weight:500;}
.ne-wrap{flex:1;min-height:0;display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.55));
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.ne-date{flex:0 0 auto;text-align:center;font-family:var(--font-en);font-size:11px;
  color:var(--faint);letter-spacing:.06em;padding:2px 0 12px;}
.ne-input{
  flex:1;min-height:0;width:100%;
  border:none;outline:none;resize:none;background:transparent;
  padding:0 20px 16px;
  font-family:var(--font-cn-title);font-size:16px;line-height:2;letter-spacing:.03em;
  color:var(--text);
}
.ne-input::placeholder{color:var(--faint);}
.ne-imgs,.ne-links{flex:0 0 auto;padding:0 20px 10px;}
.ne-quote{flex:0 0 auto;margin:0 20px 12px;padding:8px 12px;border-radius:14px;
  background:linear-gradient(140deg,rgba(222,238,246,.85),rgba(222,238,246,.55));
  font-size:12px;color:#2F5A4F;line-height:1.7;border:1px solid var(--glass-brd);}
.ne-quote .nq-who{display:block;font-size:10px;color:var(--blue);letter-spacing:.08em;}
.ne-bar{flex:0 0 auto;display:flex;align-items:center;gap:16px;
  padding:8px 20px 10px;border-top:1px solid var(--glass-brd);background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));}
.ne-count{margin-left:auto;font-family:var(--font-en);font-size:11px;color:var(--faint);}
.cop{display:flex;align-items:center;gap:4px;border:none;background:none;padding:2px 4px;
  font-size:11px;color:var(--sub);cursor:pointer;letter-spacing:.03em;}

/* 授权锁定遮罩 */
.lock{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:26px;background:rgba(236,248,244,.72);
  -webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .lock{background:rgba(240,250,246,.96);}
}
.lock-card{width:100%;max-width:320px;text-align:center;padding:30px 24px;border-radius:22px;
  background:var(--glass-2);border:1px solid var(--glass-brd);box-shadow:var(--glass-sh);}
.lock-card .h2{margin-top:0;}
