/* frost.css — v0.5 小窝设计系统：日系留白 × 玻璃 × 弥散光 × 暖白
   换皮不换骨：只重写视觉，frost.jsx 的数据逻辑与 class 名保持不变。 */
/* fonts loaded from index.html to avoid @import waterfall */

:root {
  --bg:#f4f4f0; --ink:#5b544a; --muted:#9a9183; --faint:#b4aa9a;
  --bao:#5a5248; --bao-ink:#e6d6bc; --diao:#f3e7df; --diao-ink:#bd96a0;
  --on:#9aae8e; --soft:#cda3a8;
  /* 玻璃变量体系：--glass-alpha 由滑块驱动；--glass-tint-light/dark 随深浅模式翻转 */
  --glass-alpha:.26; --glass-tint-light:255,255,255; --glass-tint-dark:42,40,36;
  --glass-1:rgba(var(--glass-tint-light), var(--glass-alpha));
  --glass-2:rgba(var(--glass-tint-light), calc(var(--glass-alpha) * 1.9));
  --glass-3:rgba(var(--glass-tint-light), calc(var(--glass-alpha) * 2.8));
  --glass-4:rgba(var(--glass-tint-light), calc(var(--glass-alpha) * 3.6));
  --card-bg:var(--glass-1); --card-blur:blur(24px) saturate(1.5);
  --card-bd:.5px solid rgba(var(--glass-tint-light), .58);
  --card-sh:0 8px 22px rgba(120,104,84,.06), inset 0 1px 0 rgba(var(--glass-tint-light), .5);
  --me-bg:rgba(216,172,180, var(--glass-alpha)); --tab-bg:rgba(var(--glass-tint-light), .4);
  --serif:"Noto Serif SC",serif; --sans:"Noto Sans SC","PingFang SC",sans-serif;
  --hand:"Long Cang",cursive; --script:"Dancing Script",cursive;
  --n-pink:#d8b4ba; --n-mint:#bcc6b2; --n-lav:#bcb6cc;
  --r-lg:24px; --r-md:14px; --r-sm:4px;
  /* 迁回 pixel.css 独占的全局令牌，避免移除 pixel.css 加载后失效 */
  --border-main:#5b544a; --panther:#352a20; --surface-paper:#f3efe7; --text-main:#5b544a;
  --font-ui:"Noto Sans SC","PingFang SC",sans-serif;
  --shadow-frame:0 30px 70px rgba(120,100,70,.25); --shadow-sm:0 2px 6px rgba(91,70,52,.18);
  --accent:#b08a92; --fg:#5b544a; --text:#6a6052;
}
*{box-sizing:border-box}

/* ===== 深浅切换过渡 ===== */
.frost-screen,.frost-message,.frost-setrow,.frost-nav,.frost-mood-card,.frost-glass-card,
.frost-card,.frost-notice,.frost-typing,.frost-empty,.frost-grp-title,.frost-topbar,
.frost-diary-card,.frost-diary-detail,.frost-memo,.frost-memo-sheet,.frost-collection-home button,
.frost-collection-list button,.frost-mem-item,.frost-mem-theme-sum,.frost-row,.frost-field-lg,
.frost-ops-tile,.frost-activity-card,.frost-xhs-card,.frost-fp-card,.frost-fp-mapwrap,
.frost-action-card,.frost-action-capsule span,.frost-date-divider,.frost-search,.frost-session-info,
.frost-sheet,.frost-seg,.frost-seg button,.frost-mem-tabs,.frost-mem-tabs button,
.frost-calendar-grid,.frost-sched-item,.frost-day-diary,.frost-tl-item,
.frost-cr-bar,.frost-paper-note,.frost-write-paper,.frost-mp-card,.frost-hisday,
.frost-load-more,.frost-ops-card,.frost-setting-group,body{
  transition:background .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease;
}
body{margin:0;background:#e7e1d8;font-family:var(--sans);color:var(--ink)}

/* ===== 手机外框 ===== */
.phoneframe{background:var(--bg)!important;border:1px solid rgba(255,253,245,.6)!important;border-radius:48px!important;box-shadow:0 30px 70px rgba(120,100,70,.25)!important;padding:10px!important;position:relative}
.phoneframe .notch{position:absolute;z-index:5;top:10px;left:50%;transform:translateX(-50%);width:88px!important;height:24px!important;background:var(--bg)!important;border-radius:0 0 14px 14px}
.phoneframe .home{width:110px!important;height:5px!important;border-radius:10px;background:#d8ccbe!important}
.screen-wrap{border:0!important;border-radius:39px}

/* ===== 屏幕 + 弥散光 + 颗粒 ===== */
.frost-screen{position:relative;isolation:isolate;width:390px;height:844px;overflow:hidden;color:var(--ink);font-family:var(--sans);background:var(--bg)}
.frost-screen::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(120% 80% at 84% 2%, rgba(234,188,202,.4), transparent 58%),
  radial-gradient(118% 78% at 4% 20%, rgba(158,202,220,.55), transparent 56%),
  radial-gradient(128% 88% at 52% 108%, rgba(198,190,228,.4), transparent 58%),
  radial-gradient(90% 70% at 92% 62%, rgba(170,206,216,.32), transparent 55%),
  radial-gradient(82% 64% at 12% 72%, rgba(196,210,150,.36), transparent 55%)}
.frost-screen::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.frost-app-screen{position:relative;display:flex;flex-direction:column}
.frost-app-screen>*{position:relative;z-index:2}
/* 真机全屏：干掉桌面用的"手机壳"装饰（原 !important 压过了 index.html 的移动端规则） */
@media (max-width:520px){
  html,body,#stage{background:var(--bg)!important} /* 桌面舞台的淡绿背景在真机上会从底部漏出来 */
  .frost-screen{width:100vw;height:100vh}
  .phoneframe{padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--bg)!important}
  .phoneframe .notch,.phoneframe .home{display:none!important}
  .screen-wrap{border-radius:0!important}
}
.frost-scroll{position:relative;z-index:2;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 22px calc(100px + env(safe-area-inset-bottom,0px));scrollbar-width:none}
.frost-scroll::-webkit-scrollbar{display:none}

/* ===== 顶栏 ===== */
.frost-topbar{position:relative;z-index:2;flex:0 0 auto;display:grid;align-items:center;grid-template-columns:40px 1fr auto;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 40px) 22px 8px}
.frost-topbar h1{margin:0;font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:2px;color:var(--text);text-align:center}
.frost-top-spacer{width:38px;height:38px}
.frost-icon-button{width:40px;height:40px;border:0;border-radius:50%;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd);color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:17px}
.frost-icon-button:active{transform:scale(.94)}
.frost-header-actions{display:flex;gap:6px;justify-self:end}

/* ===== 玻璃基类 + 按钮 ===== */
.frost-primary,.frost-secondary{border:0;min-height:44px;padding:0 24px;border-radius:999px;font-family:var(--serif);font-size:15px;font-weight:400;letter-spacing:.6px;cursor:pointer}
.frost-primary{color:var(--bao-ink);background:var(--bao)}
.frost-secondary{color:var(--text);background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd)}
.frost-primary:active,.frost-secondary:active{transform:scale(.97)}
.frost-primary:disabled{opacity:.5}
.frost-clay-ava{display:grid;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:50%;background:var(--glass-2)}
.frost-notice{margin:6px auto;padding:6px 16px;color:var(--ink);font-size:12px;background:var(--glass-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;text-align:center;max-width:80%;animation:frost-toast-in .25s ease-out}@keyframes frost-toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.frost-empty{padding:24px;text-align:center;color:var(--faint);font-family:var(--hand);font-size:16px}

/* ===== 欢迎页（对齐原型：Welcome ♡ our home + 月窗障子门）===== */
.frost-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 32px}
.frost-couple{display:flex;align-items:center;justify-content:center;gap:8px}
.frost-figure{border-radius:50%}
.wel-head{position:relative;z-index:2;width:100%;max-width:300px;margin-top:-40px;margin-bottom:50px}
.wel-hello{font-family:var(--script);font-size:62px;font-weight:600;color:var(--text);line-height:1;text-align:left;margin-left:4px}
.wel-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:8px}
.wel-couple{height:56px;width:auto;object-fit:contain;margin-right:16px;filter:drop-shadow(0 5px 9px rgba(120,100,80,.2))}
.wel-hello2{font-family:var(--script);font-size:33px;font-weight:500;color:var(--soft)}
.wel-door{position:relative;z-index:2;border:none;background:none;cursor:pointer;padding:0;transition:transform .2s;filter:drop-shadow(0 16px 26px rgba(120,96,60,.26))}
.wel-door:active{transform:scale(.975)}
.wel-door svg{width:250px;height:auto;display:block}
.wel-door-label{position:relative;z-index:2;margin-top:24px;font-family:var(--serif);font-size:13px;color:#8a7858;letter-spacing:4px}

/* ===== 首页 · 情侣卡 ===== */
.frost-view-home .frost-topbar{grid-template-columns:1fr auto}
.frost-view-home .frost-top-spacer:first-child{display:none}
.frost-view-home .frost-topbar h1{justify-self:start;text-align:left;font-size:21px;letter-spacing:3px}
.frost-home-couple-card{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;margin-top:14px;padding:22px 8px;border-radius:var(--r-lg)}
.frost-home-person{display:flex;flex-direction:column;align-items:center;gap:8px;border:0;background:none;color:var(--ink);cursor:default;font:inherit}
/* ===== 他此刻的内心（情感可视化）===== */
.frost-mood-card{margin-top:12px;padding:16px 18px;border-radius:var(--r-lg);background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:.5px solid var(--glass-2);box-shadow:0 8px 20px rgba(120,104,84,.07),inset 0 1px 0 var(--glass-2);--mc:210,180,190}
.frost-mood-card.tone-pink{--mc:234,188,202}
.frost-mood-card.tone-mint{--mc:170,200,168}
.frost-mood-card.tone-lav{--mc:198,190,228}
.frost-mood-card.tone-blue{--mc:170,200,214}
.frost-mood-top{display:flex;align-items:center;gap:14px}
.frost-mood-orb{position:relative;width:44px;height:44px;flex:none;animation:moodBreathe 3.4s ease-in-out infinite}
.frost-mood-orb span{position:absolute;inset:6px;border-radius:50%;background:radial-gradient(circle at 36% 32%, rgba(var(--mc),.95), rgba(var(--mc),.5) 60%, rgba(var(--mc),.25));box-shadow:0 4px 12px rgba(var(--mc),.5)}
.frost-mood-orb i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle, rgba(var(--mc),.4), transparent 70%);animation:moodGlow 3.4s ease-in-out infinite}
@keyframes moodBreathe{0%,100%{transform:scale(.92)}50%{transform:scale(1.06)}}
@keyframes moodGlow{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.85;transform:scale(1.35)}}
.frost-mood-head{display:flex;flex-direction:column;gap:3px}
.frost-mood-label{font-size:10.5px;letter-spacing:3px;color:#a89f90}
.frost-mood-word{font-family:var(--serif);font-weight:400;font-size:18px;color:var(--text);letter-spacing:.5px}
.frost-mood-top{display:flex;align-items:center;gap:14px;cursor:pointer}
.frost-mood-toggle{margin-left:auto;font-size:11px;color:var(--faint);letter-spacing:1px;flex:none}
.frost-mood-voice{margin:12px 2px 10px;font-family:var(--hand);font-size:16px;line-height:1.6;color:#6a6258}
.frost-mood-curve{display:block;width:100%;height:42px;margin:2px 0 6px}
.frost-mood-more{width:100%;margin-top:8px;border:0;background:transparent;color:#9a7c8a;font-size:12px;padding:4px;cursor:pointer;text-align:center}
/* 心情大页面 */
.frost-moodpage{position:absolute;inset:0;z-index:36;background:var(--glass-3);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:calc(env(safe-area-inset-top,0px) + 42px) 20px calc(96px + env(safe-area-inset-bottom,0px));scrollbar-width:none;--mc:234,188,202}
.frost-moodpage::-webkit-scrollbar{display:none}
.frost-moodpage.tone-pink{--mc:234,188,202}
.frost-moodpage.tone-mint{--mc:170,200,168}
.frost-moodpage.tone-lav{--mc:198,190,228}
.frost-moodpage.tone-blue{--mc:170,200,214}
.frost-mp-dims .frost-mood-dim i{background:rgba(150,140,130,.12)}
.frost-mp-dims .frost-mood-dim b{background:rgba(var(--mc),.9)}
.frost-mp-card{background:var(--glass-3);border-radius:16px;padding:16px 16px 14px;margin-bottom:14px;box-shadow:0 2px 12px rgba(150,130,120,.08)}
.frost-mp-word{font-size:16px;font-weight:600;color:#6a5f57}
.frost-mp-voice{font-size:12.5px;color:#8a8078;margin:4px 0 10px;line-height:1.6}
.frost-mp-today .frost-mood-curve{height:64px}
.frost-mp-axis{display:flex;justify-content:space-between;font-size:9.5px;color:#b3aaa0;margin-top:2px;padding:0 2px}
.frost-mp-dims{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.frost-mp-htitle{font-size:13px;font-weight:600;color:#6a5f57;margin-bottom:12px}
.frost-mp-bars{display:flex;align-items:flex-end;gap:5px;height:96px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.frost-mp-bars::-webkit-scrollbar{display:none}
.frost-mp-bar{flex:0 0 auto;width:20px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;border:0;background:transparent;cursor:pointer;padding:0}
.frost-mp-bar i{width:9px;border-radius:5px;display:block;transition:transform .15s}
.frost-mp-bar.on i{transform:scaleX(1.5)}
.frost-mp-bar span{font-size:8.5px;color:#b3aaa0}
.frost-mp-bar i.tone-pink{background:#e8a7a0}
.frost-mp-bar i.tone-lav{background:#c69ad0}
.frost-mp-bar i.tone-mint{background:#7fb8a0}
.frost-mp-bar i.tone-blue{background:#8faccf}
.frost-mp-pick{margin-top:12px;font-size:12px;color:#8a8078;background:rgba(198,154,208,.1);border-radius:10px;padding:9px 12px}
.frost-mood-bubbles{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.frost-mood-bubble{font-size:11px;padding:5px 11px;border-radius:999px;background:rgba(var(--mc),.16);color:#6a6258;font-family:var(--hand);animation:bubbleFloat 4s ease-in-out infinite}
@keyframes bubbleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.frost-mood-dims{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:14px;padding-top:12px;border-top:.5px solid rgba(180,170,154,.16)}
.frost-mood-dim{display:flex;align-items:center;gap:8px}
.frost-mood-dim span{font-size:10.5px;letter-spacing:1px;color:var(--faint);width:24px;flex:none}
.frost-mood-dim i{flex:1;display:block;height:3px;border-radius:3px;background:rgba(180,170,154,.2);overflow:hidden}
.frost-mood-dim b{display:block;height:100%;border-radius:3px;background:rgba(var(--mc),.85);transition:width .6s ease}
.frost-home-person-ferret{cursor:pointer}
.frost-home-person b{font-family:var(--serif);font-size:15px;color:var(--text);letter-spacing:1px}
.frost-home-days{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;position:relative;padding:0 8px}
.frost-home-days>span{font-size:11px;letter-spacing:4px;color:#a89f90}
.frost-home-days strong{margin:4px 0 1px;font-family:var(--serif);font-weight:200;font-size:46px;line-height:1;color:#b89a78}
.frost-home-days strong small{font-size:13px;margin-left:2px;color:var(--muted);font-weight:400}
.frost-home-days em{font-size:10px;letter-spacing:1px;color:var(--faint);font-style:normal}
.frost-chip{display:inline-flex;align-items:center;gap:5px;padding:0;background:none;color:var(--muted);font-family:var(--sans);font-size:12px;font-style:normal}
.frost-chip small{margin-left:2px;font-size:11px;color:var(--faint)}
.frost-status-dot{width:6px;height:6px;border-radius:50%}
.frost-status-dot.mint{background:var(--on)}.frost-status-dot.pink{background:var(--soft)}
/* 选心情：底部弹层里的药丸选项（旧的悬浮下拉定位错到屏幕外，已废弃） */
.frost-pick-opts{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
.frost-pick-opts button{padding:10px 16px;border:0;border-radius:999px;background:var(--glass-2);font-family:var(--sans);font-size:13px;color:var(--text);cursor:pointer}
.frost-pick-opts button.active{background:var(--bao);color:var(--bao-ink)}
.frost-pick-opts button:active{transform:scale(.96)}
.frost-status-own{display:flex;gap:8px;margin-top:14px}
.frost-status-own input{flex:1;min-width:0;padding:10px 14px;border:0;border-radius:999px;background:var(--glass-2);font-family:var(--sans);font-size:13px;color:var(--text);outline:none}
.frost-status-own button{padding:10px 16px;border:0;border-radius:999px;background:var(--bao);color:var(--bao-ink);font-family:var(--sans);font-size:13px;cursor:pointer}
.frost-status-own button:disabled{opacity:.4;cursor:default}
.frost-status-tip{margin:10px 0 0;text-align:center;font-size:11px;color:var(--faint)}
.frost-status-empty{color:var(--faint)}
.frost-home-avatar{border:0;background:none;padding:0;cursor:pointer}
.frost-chip.frost-chip-btn{border:0;background:none;cursor:pointer}
.frost-avatar-backdrop{position:absolute;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:0 12px;background:rgba(86,76,66,.3);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.frost-avatar-sheet{width:100%;margin-bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--glass-3);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border-radius:22px;padding:22px 22px 24px;box-shadow:0 14px 40px rgba(80,68,54,.28);text-align:center}
.frost-avatar-sheet h3{margin:0 0 16px;font-family:var(--serif);font-weight:400;font-size:14px;color:var(--text)}
.frost-avatar-pick{display:inline-block;min-width:180px}

/* ===== 首页 · 叮嘱便签 ===== */
.frost-section{margin-top:16px;padding:15px 16px;border-radius:var(--r-md)}
.frost-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-section-title span{display:flex;align-items:center;gap:8px}
.frost-section-title .frost-chip{font-size:11px;color:#b09a8e}
.frost-memo{position:relative;padding:13px 15px 12px 18px;margin-bottom:9px;border-radius:4px;background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 7px 16px rgba(120,104,84,.08)}
.frost-memo::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2.5px;border-radius:2px}
.frost-memo.c0::before{background:var(--n-pink)}.frost-memo.c1::before{background:var(--n-mint)}.frost-memo.c2::before{background:var(--n-lav)}
.frost-memo:nth-of-type(odd){transform:rotate(-.4deg)}.frost-memo:nth-of-type(even){transform:rotate(.4deg)}
.frost-memo-text{font-family:var(--hand);font-size:17px;line-height:1.45;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.frost-memo.done .frost-memo-text{text-decoration:line-through;color:#b8b0a4}
.frost-memo-from{display:block;margin-top:6px;font-family:var(--sans);font-size:11px;color:var(--faint)}
.frost-memo-backdrop{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:36px 30px;background:rgba(86,76,66,.3);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.frost-memo-sheet{position:relative;width:100%;max-width:266px;padding:24px 22px 18px;border-radius:14px;background:var(--glass-3);background-image:repeating-linear-gradient(transparent,transparent 26px,rgba(206,186,150,.13) 26px,rgba(206,186,150,.13) 27px);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);box-shadow:0 22px 52px rgba(80,68,54,.32)}
.frost-memo-tape{position:absolute;top:-9px;left:50%;transform:translateX(-50%) rotate(-2deg);width:64px;height:18px;background:rgba(206,196,170,.5)}
.frost-memo-sheet-from{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-family:var(--serif);font-size:12px;color:var(--text)}
.frost-memo-sheet-text{font-family:var(--hand);font-size:18px;line-height:1.7;color:var(--ink)}
.frost-memo-sheet-actions{display:flex;gap:8px;margin-top:16px}
.frost-memo-sheet-actions button{flex:1;padding:9px;border:0;border-radius:999px;cursor:pointer;font-family:var(--sans);font-size:12px}
.frost-memo-done-btn{background:var(--bao);color:var(--bao-ink)}
.frost-memo-del-btn{background:var(--glass-3);color:var(--muted)}
.frost-memo-add{width:100%;margin-top:2px;padding:11px;border:1px dashed var(--glass-3);border-radius:12px;background:none;color:var(--muted);cursor:pointer;font-family:var(--sans);font-size:12px;display:flex;align-items:center;justify-content:center;gap:6px}
.frost-inline-form{display:flex;gap:7px;margin-top:9px}
.frost-inline-form input{flex:1;min-width:0;border:0;border-radius:12px;padding:10px 12px;background:var(--glass-2);color:var(--ink);font:inherit;outline:none}
.frost-inline-form button{border:0;border-radius:999px;padding:0 16px;color:var(--bao-ink);background:var(--bao);cursor:pointer}
/* 想念条 —— 已弃用，隐藏 */
.frost-together-strip{display:none!important}
/* FAB —— 已被底部 tab 取代，隐藏 */
.frost-fab-wrap{display:none!important}

/* ===== 聊天 ===== */
.frost-view-chat .frost-topbar h1{text-align:left}
.frost-view-chat .frost-scroll{display:flex;flex-direction:column;padding-bottom:0}
.frost-view-chat .frost-chat-list{flex:1}
.frost-view-chat .frost-chat-compose{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
.frost-view-chat .frost-topbar h1{display:flex;align-items:center;gap:9px;font-size:16px}
.frost-chat-peer{display:flex;align-items:center;gap:9px}
.frost-chat-peer .frost-clay-ava{width:34px;height:34px}
.frost-chat-peer-name{display:flex;flex-direction:column;line-height:1.2;text-align:left}
.frost-chat-peer-name em{font-style:normal;font-family:var(--sans);font-size:11px;color:var(--on)}
.frost-line-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 10px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:var(--glass-1);color:var(--fg);font-size:10.5px;font-weight:500;letter-spacing:.3px;cursor:pointer;margin-left:8px;white-space:nowrap;transition:background .15s}
.frost-line-chip:active{background:rgba(255,255,255,.2)}
.frost-line-backdrop{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.25)}
.frost-line-menu{position:absolute;top:52px;left:30px;right:30px;z-index:91;background:var(--glass-4);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:10px 4px;display:flex;flex-direction:column;gap:2px;max-height:70vh;overflow-y:auto;scrollbar-width:none}
.frost-line-menu::-webkit-scrollbar{display:none}
.frost-line-divider{height:1px;background:rgba(128,128,128,.15);margin:4px 14px}
.frost-line-menu-title{font-size:11px;color:var(--faint);padding:4px 14px 8px;letter-spacing:1px;font-weight:600}
.frost-line-menu button{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:none;background:transparent;color:var(--fg);font-size:13.5px;border-radius:8px;cursor:pointer;text-align:left}
.frost-line-menu button:active,.frost-line-menu button.active{background:rgba(107,154,96,.12)}
.frost-line-menu button.active{font-weight:600;color:var(--on)}
.frost-line-menu button small{font-size:10.5px;color:var(--faint);font-weight:400;margin-left:6px}
.frost-chat-list{min-height:0;flex:1;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:6px 2px 12px;scrollbar-width:none}
.frost-chat-list::-webkit-scrollbar{display:none}
.frost-date-divider{align-self:center;margin:6px 0;padding:3px 12px;border-radius:999px;background:var(--glass-2);color:var(--faint);font-size:10px}
.frost-view-chat .frost-scroll{padding-left:12px;padding-right:12px}
.frost-msg-row{display:flex;align-items:flex-end;gap:6px}
.frost-msg-row.mine{justify-content:flex-end}
.frost-message{max-width:84%;display:flex;flex-direction:column;gap:2px;padding:10px 14px;font-size:14px;line-height:1.6;backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.frost-message.theirs{border-radius:16px 16px 16px 5px;background:var(--card-bg);color:var(--text)}
.frost-message.mine{border-radius:16px 16px 5px 16px;background:var(--me-bg);color:var(--text)}
.frost-message.failed{background:rgba(216,150,160,.3)}
/* 他主动冒出来的消息：和普通回复同样的玻璃质感，不做特殊底色 */
.frost-message.spontaneous{background:var(--card-bg);border-color:transparent;box-shadow:none}
/* 做梦：无气泡，直接浮在底图上——像他发的，左对齐、手写朦胧紫 */
.frost-msg-row-dream{margin:8px 0}
.frost-message.dream{background:none!important;border:0!important;box-shadow:none!important;padding:2px 2px!important;max-width:92%!important}
.frost-message.dream .frost-msg-line{font-family:var(--hand);font-size:16.5px;line-height:1.8;color:#9a8bb4;letter-spacing:.4px}
.frost-message.dream small{display:none}
.frost-msg-tag{align-self:flex-start;font-family:var(--hand);font-size:12px;color:#a99bc4;margin-bottom:4px;letter-spacing:1.5px;opacity:.85}
/* 消息正文：保段落、动作行用手写体（原型 .bubble .act 的对应物） */
.frost-msg-body{display:block}
.frost-msg-img{max-width:100%;max-height:280px;border-radius:12px;margin-bottom:4px;display:block;object-fit:cover}
.frost-compose-preview{display:flex;align-items:center;gap:8px;padding:6px 14px 2px}
.frost-compose-preview img{width:54px;height:54px;object-fit:cover;border-radius:10px}
.frost-compose-preview>button{border:0;background:rgba(90,82,72,.72);color:#fff;border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:14px;line-height:1}
.frost-compose-uploading{font-size:12px;color:var(--soft)}
.frost-msg-line{display:block;white-space:pre-wrap;min-height:.5em}
.frost-msg-act{display:block;font-family:var(--hand);font-size:15px;color:var(--muted);line-height:1.5;margin:2px 0}
.frost-html-card{margin:8px 0}
.frost-html-toggle{display:inline-block;border:0;background:var(--glass-2);padding:6px 14px;font-size:13px;color:var(--accent);cursor:pointer;text-align:left;font-family:var(--sans);letter-spacing:.3px;border-radius:10px;transition:background .2s}
.frost-html-toggle:active{background:var(--glass-2)}
.frost-html-drawer-backdrop{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;animation:frost-fade-in .2s ease}
.frost-html-drawer{width:100%;height:52vh;background:var(--glass-3);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border-radius:18px 18px 0 0;display:flex;flex-direction:column;animation:frost-slide-up .3s cubic-bezier(.32,.72,.24,1)}
.frost-html-drawer.snapping{transition:height .28s cubic-bezier(.32,.72,.24,1)}
.frost-html-drawer-bar{display:flex;align-items:center;justify-content:center;padding:10px 16px 6px;position:relative;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.frost-html-drawer-pill{width:36px;height:4px;border-radius:2px;background:rgba(128,128,128,.25)}
.frost-html-drawer-close{position:absolute;right:12px;top:8px;width:30px;height:30px;border:0;background:rgba(128,128,128,.12);border-radius:50%;font-size:14px;color:var(--faint,#999);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.frost-html-drawer-close:active{background:rgba(128,128,128,.22)}
.frost-html-drawer-frame{display:block;width:100%;flex:1;min-height:0;border:0;background:var(--bg);border-radius:0}
@keyframes frost-slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes frost-fade-in{from{opacity:0}to{opacity:1}}
.frost-message small{align-self:flex-end;font-size:9px;color:var(--faint)}
.frost-message.theirs small{align-self:flex-start}
.frost-typing{padding:8px 14px;border-radius:16px;background:var(--card-bg);color:var(--muted);font-size:12px}
/* 思考链：默认收起的灰色内心活动，和正式回复气泡明确区分 */
.frost-think{margin-bottom:4px}
.frost-think-toggle{border:0;background:none;padding:0;color:var(--faint);font-size:11px;cursor:pointer;font-family:var(--sans);letter-spacing:.5px}
.frost-think-body{margin:6px 0 4px;padding:8px 10px;border-left:2px solid #e2d8c6;color:var(--muted);font-size:12px;line-height:1.7;white-space:pre-wrap;font-style:italic}
.frost-toollog{margin-bottom:4px}
.frost-toollog-toggle{border:0;background:none;padding:0;color:var(--faint);font-size:11px;cursor:pointer;font-family:var(--sans);letter-spacing:.5px}
.frost-toollog-body{margin:6px 0 4px;padding:6px 8px;border-left:2px solid #c5d4e0;font-size:11px;line-height:1.8}
.frost-toollog-item{display:flex;align-items:baseline;gap:4px;color:var(--muted);font-family:var(--mono,"SF Mono",monospace);font-size:11px}
.frost-toollog-item.fail{color:#c44}
.frost-toollog-icon{flex-shrink:0;width:12px;text-align:center}
.frost-toollog-text{word-break:break-all}
.frost-typing i{font-style:normal;animation:frost-dot 1s infinite}
.frost-typing i:nth-child(2){animation-delay:.15s}.frost-typing i:nth-child(3){animation-delay:.3s}
@keyframes frost-dot{50%{opacity:.2}}
.frost-chat-compose{flex:0 0 auto;display:flex;align-items:flex-end;gap:8px;padding:8px 2px calc(90px + env(safe-area-inset-bottom,0px))}
.frost-chat-compose textarea{flex:1;min-width:0;border:0;border-radius:18px;padding:11px 14px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd);resize:none;max-height:120px;line-height:1.5;font:inherit;outline:none}
.frost-chat-compose .frost-primary{min-height:38px;padding:0 16px}
.frost-session-info,.frost-search,.frost-sheet{margin-bottom:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.frost-search{display:flex;flex-wrap:wrap;gap:8px}
.frost-search input,.frost-field input,.frost-field textarea,.frost-date-field input{width:100%;min-width:0;border:0;border-radius:12px;padding:10px 12px;background:var(--glass-2);color:var(--ink);font:inherit;outline:none}
.frost-search-panel{flex-direction:column;flex-wrap:nowrap;background:var(--glass-3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:16px;padding:12px;gap:10px;flex-shrink:0}
.frost-search-panel>input{flex:1 1 100%}
.frost-search-row{display:flex;align-items:center;gap:10px;overflow:hidden}
.frost-date-field{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;overflow:hidden}
.frost-date-field>span{flex:0 0 auto}
.frost-date-field input{padding:8px 10px;max-width:140px;min-width:0}
.frost-search-hint{margin:0;font-size:12px;color:var(--muted)}
.frost-search-see-all,.frost-search-close{flex:0 0 auto;border:0;border-radius:999px;padding:7px 14px;cursor:pointer;font-size:12px}
.frost-search-see-all{background:rgba(232,167,160,.2);color:#b06a63}
.frost-search-close{background:var(--glass-3);color:var(--soft)}
.frost-search-actions{display:flex;gap:7px;flex:0 0 auto}
.frost-search button:not(.frost-primary),.frost-sheet-head button{border:0;background:none;color:var(--soft);cursor:pointer;font-size:12px}
.frost-sheet-head{display:flex;justify-content:space-between;margin-bottom:8px;font-family:var(--serif)}
.frost-session-row{display:grid;grid-template-columns:1fr 28px 28px;align-items:center;gap:5px;border-top:1px solid var(--glass-2)}
.frost-session-row>button:first-child{padding:11px 0;display:flex;flex-direction:column;text-align:left;border:0;background:none;cursor:pointer}
.frost-session-row b{font-size:13px;color:var(--text)}.frost-session-row span{font-size:10px;color:var(--muted)}
.frost-session-row>button:not(:first-child){width:28px;height:28px;border:0;border-radius:50%;background:var(--glass-2);color:var(--muted);cursor:pointer}
.frost-session-info{display:flex;align-items:flex-start;gap:10px}
.frost-session-info b{color:var(--text);font-size:13px}.frost-session-info span{color:var(--muted);font-size:11px}
.frost-rename-original{margin:0 0 10px;color:var(--ink);font-size:13px}
.frost-rename-original span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.frost-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}

/* ===== 日记 ===== */
.frost-diary-list{display:flex;flex-direction:column;gap:11px;margin-top:14px}
.frost-diary-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 15px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0;text-align:left;cursor:pointer}
.frost-diary-card b{font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-diary-card i,.frost-diary-card em{display:block;font-style:normal;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-diary-card small{font-size:18px;color:var(--faint)}
.frost-diary-detail{margin-top:8px;padding:26px 24px;border-radius:14px;background:#faf6ed;background-image:repeating-linear-gradient(transparent 0,transparent 33px,rgba(206,186,150,.14) 33px,rgba(206,186,150,.14) 34px);box-shadow:0 10px 26px rgba(120,104,84,.1)}
.frost-diary-meta{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.frost-diary-meta b{font-family:var(--serif);font-size:14px;color:var(--text)}.frost-diary-meta small{display:block;color:var(--muted);font-size:11px}
.frost-diary-detail h2{margin:4px 0 12px;font-family:var(--serif);font-weight:400;font-size:19px;color:var(--text)}
.frost-diary-body{white-space:pre-wrap;font-family:var(--hand);font-size:19px;line-height:34px;color:var(--text)}
.frost-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.frost-detail-actions button{border:0;border-radius:999px;padding:8px 14px;background:var(--glass-3);color:var(--text);cursor:pointer;font-size:12px}
.frost-comments{margin-top:22px}
.frost-comments h3{font-family:var(--serif);font-weight:400;font-size:13px;color:#a89f90}
.frost-comment{display:flex;gap:8px;align-items:flex-start;margin:10px 0;font-size:13px}
.frost-comment b{display:block;color:var(--muted);font-size:11px}
.frost-editor{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.frost-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.frost-field textarea{resize:vertical;line-height:1.7}
.frost-empty-card{display:flex;min-height:280px;flex-direction:column;align-items:center;justify-content:center;gap:16px;border-radius:var(--r-lg);text-align:center}
.frost-empty-card p{margin:0;color:var(--muted);font-size:13px}

/* ===== 日历 ===== */
.frost-calendar-head{display:flex;align-items:center;justify-content:space-between;padding:14px 8px 8px}
.frost-calendar-head strong{font-family:var(--serif);font-size:15px;color:var(--text)}
.frost-calendar-head button{width:34px;height:34px;border:0;border-radius:50%;background:var(--glass-2);color:var(--muted);cursor:pointer;font-size:18px}
.frost-calendar-grid{padding:14px;border-radius:var(--r-lg)}
.frost-week,.frost-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.frost-week{margin-bottom:6px;font-size:10px;color:var(--faint)}
.frost-days button{position:relative;height:36px;border:0;border-radius:10px;background:none;color:var(--text);cursor:pointer;font-size:12.5px}
.frost-days button.today{background:var(--bao);color:var(--bao-ink)}
.frost-days button.has-event i{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--soft)}
.frost-days button.today.has-event i{background:var(--bao-ink)}
.frost-day-sheet,.frost-sheet.frost-event-editor{margin-top:16px;padding:14px 15px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.frost-calendar-event{display:grid;grid-template-columns:10px 1fr auto auto;gap:9px;align-items:center;padding:10px 0;border-top:1px solid var(--glass-2)}
.frost-calendar-event i{width:8px;height:28px;border-radius:5px;background:var(--soft)}
.frost-calendar-event i.mint{background:var(--on)}.frost-calendar-event i.lav{background:var(--n-lav)}.frost-calendar-event i.blue{background:#a9b58e}
.frost-calendar-event b{font-size:13px;color:var(--text)}.frost-calendar-event small{display:block;color:var(--muted);font-size:10px}
.frost-calendar-event button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:12px}
.frost-tone-row{display:flex;gap:10px}
.frost-tone-row button{width:24px;height:24px;border:2px solid transparent;border-radius:50%;cursor:pointer}
.frost-tone-row .pink,.frost-tone-row button.pink{background:var(--soft)}.frost-tone-row .mint,.frost-tone-row button.mint{background:var(--on)}.frost-tone-row .lav,.frost-tone-row button.lav{background:var(--n-lav)}.frost-tone-row .blue,.frost-tone-row button.blue{background:#a9b58e}
.frost-tone-row .selected{border-color:#8a7c6a}
/* 日记内嵌日历 */
.frost-cal-inline{margin-top:14px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--glass-2)}
.frost-days button.sel{outline:2px solid var(--soft);outline-offset:-2px}
.frost-days button.today.sel{outline-color:var(--bao-ink)}
.frost-days button.has-diary::after{content:"";position:absolute;left:50%;bottom:4px;transform:translateX(calc(-50% + 6px));width:4px;height:4px;border-radius:50%;background:var(--on)}
.frost-days button.has-event.has-diary i{transform:translateX(calc(-50% - 6px))}
.frost-cal-legend{display:flex;gap:16px;justify-content:center;margin-top:10px;font-size:10.5px;color:var(--faint)}
.frost-cal-legend span{display:inline-flex;align-items:center;gap:5px}
.frost-cal-legend i{width:6px;height:6px;border-radius:50%}
.frost-cal-legend .lg-sched{background:var(--soft)}.frost-cal-legend .lg-diary{background:var(--on)}
/* 当天视图 */
.frost-day-view{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.frost-day-title{font-family:var(--serif);font-size:15px;color:var(--text);margin-bottom:2px}
.frost-day-label{font-size:11px;color:var(--faint);margin-top:6px}
.frost-sched-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:13.5px;color:var(--text);cursor:pointer}
.frost-sched-dot{width:8px;height:8px;border-radius:50%;background:var(--soft);flex:none}
.frost-sched-dot.mint{background:var(--on)}.frost-sched-dot.lav{background:var(--n-lav)}.frost-sched-dot.blue{background:#a9b58e}
.frost-day-diary{display:flex;align-items:baseline;gap:9px;padding:12px 14px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0;text-align:left;cursor:pointer}
.frost-day-diary b{font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-day-diary span{font-family:var(--hand);font-size:13px;color:var(--soft)}
.frost-day-view .frost-empty{text-align:center;color:var(--faint);font-size:12.5px;padding:18px 0;font-family:var(--sans)}
.frost-sched-hint{margin:0 0 14px;padding:10px 12px;border-radius:var(--r-md);background:rgba(205,163,168,.14);color:var(--muted);font-size:12px;line-height:1.6}
/* 记点什么弹层 */
.frost-add-pick{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.frost-add-pick button{width:100%;padding:14px;border-radius:var(--r-md);font-size:14px}

/* ===== 集合 / 记忆库 ===== */
.frost-collection-home{display:flex;flex-direction:column;gap:11px;margin-top:14px}
.frost-collection-home button{display:grid;grid-template-columns:44px 1fr auto;align-items:center;padding:15px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0;text-align:left;cursor:pointer}
.frost-collection-home button span{font-size:24px;color:var(--soft)}
.frost-collection-home button b{font-family:var(--serif);font-size:15px;color:var(--text)}
.frost-collection-home button i{font-style:normal;color:var(--faint)}
.frost-collection-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.frost-collection-list button{display:grid;grid-template-columns:1fr auto;gap:6px;padding:14px 15px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0;text-align:left;cursor:pointer}
.frost-collection-list b{font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-collection-list span{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-collection-detail{margin-top:8px}
.frost-detail-label{font-size:11px;color:var(--soft)}
.frost-collection-detail h2{margin:8px 0 12px;font-family:var(--serif);font-weight:400;font-size:18px;color:var(--text)}
.frost-collection-detail>p{white-space:pre-wrap;font-size:14px;line-height:1.9;color:#5e574c}
.frost-collection-detail blockquote{margin:14px 0 0;padding:10px 14px;border-left:2px solid var(--soft);color:var(--muted);font-size:13px;line-height:1.8}
.frost-fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 10px;margin-top:20px}
.frost-ficon{display:flex;flex-direction:column;align-items:center;gap:9px;border:0;background:none;cursor:pointer;font-size:11px;color:var(--text);font-family:var(--sans)}
.frost-ficon span{font-size:11px;color:var(--text);font-family:var(--sans)}
.frost-ftile{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--card-bg);backdrop-filter:blur(13px) saturate(1.3);-webkit-backdrop-filter:blur(13px) saturate(1.3);border:.5px solid var(--glass-3);box-shadow:0 8px 18px rgba(120,104,84,.08),inset 0 1px 0 var(--glass-2)}
.frost-ftile svg{width:26px;height:26px;fill:none;stroke-width:1.5}
.frost-footprint{display:flex;flex-direction:column;gap:14px;padding:4px 0 20px}
.frost-fp-card{position:relative;padding:16px 18px;border-radius:18px;background:var(--card-bg);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:.5px solid var(--glass-2);box-shadow:0 6px 18px rgba(120,104,84,.07),inset 0 1px 0 var(--glass-2);font-family:var(--sans);color:var(--ink)}
.frost-fp-status .frost-fp-loc{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px}
.frost-fp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#c8553d;box-shadow:0 0 0 3px rgba(200,85,61,.18);flex-shrink:0}
.frost-fp-text{margin:0;font-size:12.5px;line-height:1.65;color:var(--ink);opacity:.78;white-space:pre-wrap;font-family:var(--sans)}
.frost-fp-empty{margin:0;font-size:13px;color:var(--ink);opacity:.55;text-align:center;padding:8px 0;font-style:italic}
.frost-fp-mapwrap{position:relative;border-radius:18px;overflow:hidden;background:var(--glass-1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:.5px solid var(--glass-2);box-shadow:inset 0 1px 0 var(--glass-2)}
.frost-fp-svg{display:block;width:100%;height:auto;touch-action:none;cursor:grab}
.frost-fp-svg:active{cursor:grabbing}
.frost-fp-hint{position:absolute;bottom:8px;right:10px;font-size:10px;color:var(--ink);opacity:.4;font-family:var(--sans);pointer-events:none;letter-spacing:.5px}
.frost-fp-h{margin:6px 4px -4px;font-size:12px;color:var(--ink);opacity:.65;font-weight:500;letter-spacing:.5px}
.frost-fp-postcard{padding:0;overflow:hidden}
.frost-fp-postcard-img{display:block;width:100%;height:auto;background:var(--glass-1)}
.frost-fp-postcard-body{padding:12px 16px 14px}
.frost-fp-postcard-stamp{display:flex;justify-content:space-between;font-size:10px;color:var(--ink);opacity:.5;margin-bottom:6px;font-family:var(--sans);letter-spacing:.3px}
.frost-fp-postcard-text{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink);font-family:var(--hand,var(--sans));white-space:pre-wrap}
.frost-mem-stat{margin:14px 2px 6px;font-size:11px;color:var(--muted)}
.frost-mem-tabs{display:flex;gap:6px;margin:10px 0;padding:4px;border-radius:14px;background:var(--glass-2)}
.frost-mem-tabs button{flex:1;padding:9px;border:0;border-radius:11px;background:none;font-size:12px;color:var(--muted);cursor:pointer;font-family:var(--sans)}
.frost-mem-tabs button.active{background:var(--glass-3);color:var(--text);box-shadow:0 2px 6px rgba(120,104,84,.08)}
.frost-mem-gh{display:flex;align-items:center;gap:8px;margin:20px 2px 12px;font-family:var(--serif);font-size:13px;color:var(--text)}
.frost-mem-badge{font-size:10px;padding:3px 10px;border-radius:999px}
.frost-mem-badge.shared{background:rgba(154,174,142,.22);color:#5e7052}
.frost-mem-badge.private{background:rgba(205,163,168,.24);color:#96545e}
.frost-mem-item{padding:13px 15px;border-radius:var(--r-md);margin-bottom:9px;background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.frost-mem-tags{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.frost-mem-type{font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(154,174,142,.18);color:#6a7a5e;font-family:var(--sans)}
.frost-mem-wt{font-size:10px;padding:2px 8px;border-radius:999px;font-family:var(--sans)}
.frost-mem-wt.high{background:rgba(205,163,168,.28);color:#96545e}
.frost-mem-wt.mid{background:rgba(200,180,140,.22);color:#8a7a5e}
.frost-mem-theme{margin-bottom:16px}
.frost-mem-theme-head{display:flex;align-items:baseline;gap:8px;margin:0 2px 8px}
.frost-mem-theme-head b{font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-mem-theme-head span{font-size:10.5px;color:var(--faint)}
.frost-mem-theme-head.frost-mem-theme-loose b{color:var(--faint);font-weight:400}
.frost-mem-theme-sum{margin:0 2px 10px;padding:8px 12px;border-radius:12px;background:rgba(154,174,142,.12);font-family:var(--hand);font-size:14px;line-height:1.6;color:#5e7052}
.frost-mem-tags{cursor:pointer}
.frost-mem-tag-edit{font-size:10px;color:var(--faint);opacity:.7;font-family:var(--sans);padding:2px 2px}
.frost-mem-tagpick{margin:2px 0 8px;padding:8px;border-radius:12px;background:var(--glass-2);display:flex;flex-direction:column;gap:6px}
.frost-mem-tagrow{display:flex;gap:5px;flex-wrap:wrap}
.frost-mem-tagrow button{border:0;padding:5px 11px;border-radius:999px;background:var(--glass-3);font-size:11px;color:var(--muted);cursor:pointer;font-family:var(--sans)}
.frost-mem-tagrow button.on{background:rgba(154,174,142,.3);color:#5e7052;font-weight:600}
.frost-mem-body{font-size:13px;line-height:1.6;color:#5e574c}
.frost-mem-hand{font-family:var(--hand);font-size:16px;line-height:1.55;color:#5e574c}
.frost-mem-fix{border:0;background:none;font-size:11px;color:var(--soft);cursor:pointer;font-family:var(--sans);padding:8px 6px;margin:-8px -2px}
.frost-mem-actions{display:inline-flex;gap:10px;align-items:center;flex:0 0 auto}
.frost-mem-edit{width:100%;border:0;border-radius:10px;padding:10px 12px;background:var(--glass-3);color:var(--ink);font:inherit;font-size:13px;line-height:1.7;outline:none;resize:vertical}
.frost-timeline{margin-top:14px;padding-left:6px}
.frost-tl-item{position:relative;padding:0 0 18px 22px;border-left:1.5px solid #e2d8c6}
.frost-tl-item:last-child{border-left-color:transparent}
.frost-tl-item::before{content:"";position:absolute;left:-5px;top:2px;width:9px;height:9px;border-radius:50%;background:var(--faint)}
.frost-tl-text{font-size:13px;line-height:1.6;color:#5e574c}

/* ===== 设置 ===== */
.frost-setting-group{margin-bottom:14px;padding:16px;border-radius:var(--r-md);background:var(--glass-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:12px}
.frost-setting-group h2{margin:0;font-family:var(--serif);font-weight:400;font-size:15px;color:var(--text)}
.frost-setting-group p{margin:0;color:var(--muted);font-size:12px}
.frost-setting-row{display:flex;align-items:center;justify-content:space-between}
.frost-setting-row b{font-size:13.5px;color:var(--text)}.frost-setting-row small{display:block;color:var(--muted);font-size:11px}
.frost-weather-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.frost-switch{width:44px;height:24px;border:0;border-radius:999px;padding:3px;background:#ddd3c2;cursor:pointer;flex:0 0 auto}
.frost-switch i{display:block;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.frost-switch.on{background:var(--on)}.frost-switch.on i{transform:translateX(20px)}

/* ===== 底部 5-tab（导航骨架，聊天居中）===== */
.frost-nav{position:absolute;z-index:20;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));height:62px;display:flex;align-items:center;justify-content:space-around;padding:0 6px;border-radius:22px;background:var(--tab-bg);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);box-shadow:0 10px 30px rgba(110,94,76,.14);border:.5px solid var(--glass-3)}
.frost-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:#b3a899;font-size:10px;cursor:pointer;font-family:var(--sans);padding:4px 10px;border-radius:12px}
.frost-nav button.active{color:#8a7c6a}
.frost-nav button.active .frost-nav-dot{background:var(--soft)}
.frost-nav-dot{width:3px;height:3px;border-radius:50%;background:transparent}
.frost-nav .frost-nav-chat{width:52px;height:52px;margin-top:-20px;border-radius:50%;background:linear-gradient(160deg,#f0e2dc,#e6cdc9);box-shadow:0 10px 22px rgba(180,140,140,.32);color:#fff;justify-content:center;align-items:center;gap:0;padding:0}

/* ===== 历史搜索条 + 按月 + 时间轴（日记本/日程本/记忆库时间线/他的一天）===== */
.frost-hist-search{display:flex;align-items:center;gap:8px;margin:16px 2px 6px;padding:11px 14px;border-radius:14px;background:var(--glass-2);font-size:12px;color:var(--muted)}
.frost-hist-search svg{width:16px;height:16px;stroke:var(--faint);fill:none;stroke-width:1.6;flex:0 0 auto}
.frost-hist-search input{flex:1;min-width:0;border:0;background:none;outline:none;font:inherit;color:var(--ink)}
.frost-hist-month{font-family:var(--serif);font-size:13px;color:#a89f90;letter-spacing:1px;margin:20px 4px 12px}
.frost-timeline{margin-top:8px;padding-left:6px}
.frost-tl-item{position:relative;padding:0 0 22px 26px;border-left:1.5px solid #e2d8c6}
.frost-tl-item:last-child{border-left-color:transparent;padding-bottom:4px}
.frost-tl-item::before{content:"";position:absolute;left:-6.5px;top:1px;width:11px;height:11px;border-radius:50%;background:var(--faint);box-shadow:0 0 0 3px var(--bg)}
.frost-tl-item.now::before{background:var(--soft)}
.frost-tl-item.link{cursor:pointer}
.frost-tl-time{font-family:var(--serif);font-size:13px;color:#b89a78;margin-bottom:4px}
.frost-tl-text{font-size:13px;line-height:1.65;color:#5e574c}
.frost-tl-text b{font-family:var(--serif);color:var(--text)}
.frost-tl-note{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.frost-hist-hand{text-align:center;margin-top:6px;font-family:var(--hand);font-size:15px;color:var(--soft)}

/* 消息底部 usage 行 + 每条下面的 reroll/复制 */
.frost-usage-line{font-size:10px;color:#b6ab98;font-family:var(--serif);margin-top:3px;letter-spacing:.2px;opacity:.75}
.frost-msg-actions{display:flex;gap:12px;margin-top:4px}
.frost-mini-icon{font-size:15px;line-height:1;color:var(--muted);background:transparent;border:none;padding:1px;opacity:.38;cursor:pointer;transition:opacity .15s}
.frost-mini-icon:hover,.frost-mini-icon:active{opacity:.85}
.frost-bg-dark .frost-usage-line{color:rgba(255,255,255,.32)}
.frost-bg-dark .frost-mini-icon{color:rgba(255,255,255,.4)}

/* 合并 · 左右交替时光轴（日记/日程/待办/纪念日） */
.frost-tl-addbar{display:flex;gap:8px;margin:12px 2px 4px;flex-wrap:wrap}
.frost-tl-addbar button{flex:1;min-width:88px;padding:8px 6px;font-size:12px;border:1px solid #e2d8c6;border-radius:10px;background:var(--bg);color:#8a7f70;font-family:var(--serif)}
.frost-tl-addbar button:active{background:var(--faint)}
.frost-lrtl{position:relative;margin:16px 0 10px;padding:2px 0}
.frost-lrtl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1.5px;background:#e2d8c6;transform:translateX(-50%)}
.frost-lrtl-item{position:relative;width:50%;box-sizing:border-box;padding:0 0 15px}
.frost-lrtl-item.left{left:0;padding-right:17px}
.frost-lrtl-item.right{left:50%;padding-left:17px}
.frost-lrtl-dot{position:absolute;top:6px;width:10px;height:10px;border-radius:50%;background:var(--faint);box-shadow:0 0 0 3px var(--bg);z-index:1}
.frost-lrtl-item.left .frost-lrtl-dot{right:-5px}
.frost-lrtl-item.right .frost-lrtl-dot{left:-5px}
.frost-lrtl-card{background:var(--card,#fffdfa);border:1px solid #efe7d8;border-radius:12px;padding:8px 10px}
.frost-lrtl-item.link .frost-lrtl-card{cursor:pointer}
.frost-lrtl-item.link:active .frost-lrtl-card{background:var(--faint)}
.frost-lrtl-time{font-family:var(--serif);font-size:11px;color:#b89a78;margin-bottom:3px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.frost-lrtl-tag{font-size:10px;padding:1px 6px;border-radius:6px;background:var(--faint);color:#8a7f70;white-space:nowrap}
.frost-lrtl-title{font-family:var(--serif);font-size:13px;color:var(--text);line-height:1.5;word-break:break-word}
.frost-lrtl-note{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5;word-break:break-word}
.frost-lrtl-item.k-diary .frost-lrtl-dot{background:#c79aa0}
.frost-lrtl-item.k-event .frost-lrtl-dot{background:#8ca088}
.frost-lrtl-item.k-todo .frost-lrtl-dot{background:#c79a70}
.frost-lrtl-item.k-anniv .frost-lrtl-dot{background:#9a90b4}
.frost-lrtl-item.k-diary .frost-lrtl-tag{background:#f3e3e6;color:#a86f7c}
.frost-lrtl-item.k-event .frost-lrtl-tag{background:#e6efe4;color:#5f7d58}
.frost-lrtl-item.k-todo .frost-lrtl-tag{background:#f3e7d6;color:#a77a4a}
.frost-lrtl-item.k-anniv .frost-lrtl-tag{background:#eae6f2;color:#7268a0}

/* ===== 记忆库主题叙事卡 ===== */
.frost-mem-topic{padding:15px 16px;border-radius:var(--r-md);margin-bottom:11px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd)}
.frost-mt-head{font-family:var(--serif);font-size:14px;color:var(--text);margin-bottom:7px}
.frost-mt-narr{font-size:13px;line-height:1.85;color:#5e574c}
.frost-mt-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.frost-mt-meta{font-size:10px;color:var(--faint)}
.frost-mem-group{margin-top:22px}
.frost-mem-item .frost-mi-meta{margin-top:7px;font-size:10px;color:var(--faint)}

/* ===== 列表行（纪念日 / 心愿单）===== */
.frost-list{margin-top:20px;display:flex;flex-direction:column;gap:11px}
.frost-row{display:flex;align-items:center;gap:13px;padding:15px 16px;border-radius:var(--r-md);background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd)}
.frost-row .frost-rt{flex:1}
.frost-row .frost-rt b{display:block;font-family:var(--serif);font-size:14px;color:var(--text)}
.frost-row .frost-rt span{font-size:11px;color:var(--muted)}
.frost-row .frost-rdate{font-size:10px;color:var(--faint)}
.frost-wish-row{cursor:pointer}
.frost-wish-row.frost-wish-his{cursor:default}
.frost-wish-hand{font-family:var(--hand)!important;font-size:16px!important;color:var(--soft)!important}
.frost-wish-del{width:24px;height:24px;flex:0 0 auto;border:0;border-radius:50%;background:var(--glass-2);color:var(--muted);cursor:pointer;font-size:14px;line-height:1}

/* ===== 设置：分组标题 / setrow / chev / seg ===== */
.frost-grp-title{margin:24px 4px 12px;font-family:var(--serif);font-size:13px;color:#a89f90;letter-spacing:2px}
.frost-grp-title:first-child{margin-top:8px}
.frost-setrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-radius:var(--r-md);margin-bottom:9px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd);cursor:pointer;text-align:left;width:100%}
.frost-setrow.static{cursor:default}
.frost-setrow .frost-st{flex:1}
.frost-setrow .frost-st b{display:block;font-size:13.5px;color:var(--text)}
.frost-setrow .frost-st span{font-size:11px;color:var(--muted)}
.frost-chev{color:var(--faint);font-size:16px}
.frost-seg{display:flex;gap:6px;margin:4px 0;padding:4px;border-radius:14px;background:var(--glass-2)}
.frost-seg button{flex:1;padding:9px;border:0;border-radius:11px;background:none;font-family:var(--sans);font-size:12px;color:var(--muted);cursor:pointer}
.frost-seg button.active{background:var(--glass-3);color:var(--text);box-shadow:0 2px 6px rgba(120,104,84,.08)}
/* 玻璃透明度滑块 */
.frost-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--glass-2);outline:none;margin:12px 0 4px;cursor:pointer}
.frost-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent,#b08a92);border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.22);cursor:pointer}
.frost-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent,#b08a92);border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.22);cursor:pointer}
.frost-range-row{display:flex;align-items:center;gap:12px}
.frost-range-val{font-size:12px;color:var(--muted);min-width:42px;text-align:right;font-variant-numeric:tabular-nums}
.frost-range-label{font-size:12px;color:var(--text);opacity:.8}
.frost-set-note{margin:12px 4px 2px;font-size:11.5px;color:var(--muted);line-height:1.7}
.frost-set-note.faint{color:var(--faint)}
.frost-ops-card{margin:16px 0;padding:16px;border-radius:var(--r-md);background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd)}
.frost-ops-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:14px;letter-spacing:.5px}
.frost-ops-badge.ok{background:rgba(76,175,80,.12);color:#4caf50}
.frost-ops-badge.warn{background:rgba(255,152,0,.12);color:#ff9800}
.frost-ops-err{font-size:11px;color:#e57373;margin:0 0 8px}
.frost-ops-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--card-bd)}
.frost-ops-row:first-of-type{border-top:0}
.frost-ops-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.frost-ops-dot.ok{background:#4caf50}
.frost-ops-dot.warn{background:#ff9800}
.frost-ops-info{flex:1}
.frost-ops-info b{display:block;font-size:12px;color:var(--text)}
.frost-ops-info span{font-size:11px;color:var(--muted)}
.frost-ops-errors{margin-top:12px}
.frost-ops-err-item{padding:10px 12px;margin:6px 0;border-radius:var(--r-sm);background:rgba(229,115,115,.06);border:1px solid rgba(229,115,115,.15)}
.frost-ops-err-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.frost-ops-err-code{font-size:10px;font-weight:700;color:#e57373;background:rgba(229,115,115,.12);padding:2px 8px;border-radius:10px;text-transform:uppercase}
.frost-ops-err-time{font-size:10px;color:var(--muted)}
.frost-ops-err-line{font-size:10px;color:var(--soft);margin-left:auto}
.frost-ops-err-msg{font-size:11.5px;color:#8b6f5e;margin:6px 0 0;line-height:1.5;word-break:break-word}

/* ===== 更新日志 ===== */
.frost-changelog-entry{margin:14px 0 0;padding:0 4px}
.frost-changelog-date{font-size:11px;font-weight:600;color:var(--soft);letter-spacing:1px;padding-bottom:6px;border-bottom:1px solid rgba(180,170,155,.18)}
.frost-changelog-items{padding:8px 0 4px}
.frost-changelog-item{display:flex;align-items:flex-start;gap:7px;margin-bottom:8px}
.frost-changelog-tag{flex-shrink:0;font-size:10px;padding:1px 8px;border-radius:99px;font-weight:500;line-height:1.6}
.frost-changelog-tag{background:rgba(146,200,168,.22);color:#5a8a68}
.frost-changelog-text{font-size:12px;color:#7a7060;line-height:1.55}
.frost-changelog-item .frost-changelog-tag[data-tag="修复"]{background:rgba(200,160,140,.2);color:#9a7a60}
.frost-changelog-item .frost-changelog-tag[data-tag="优化"]{background:rgba(160,180,210,.22);color:#6a7a90}

/* ===== 可编辑表单（人设 / 说话）+ 写日记纸纹 ===== */
.frost-edit-hint{margin:14px 4px 2px;font-size:11.5px;color:var(--soft);line-height:1.6}
.frost-field-lg{margin-top:14px;padding:16px;border-radius:var(--r-md);background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd)}
.frost-fl-label{font-family:var(--serif);font-size:13px;color:#a89f90;letter-spacing:1px;margin-bottom:8px}
.frost-fl-edit{width:100%;border:0;background:none;outline:none;resize:none;font-family:var(--sans);font-size:13.5px;line-height:1.8;color:#5e574c;padding:0}
.frost-fl-input{width:100%;border:0;background:none;outline:none;font-family:var(--sans);font-size:13.5px;color:#5e574c;padding:0}
.frost-fl-input::placeholder{color:var(--faint)}
.frost-pick-row{display:flex;gap:8px}
.frost-pick-row button{flex:1;border:0;padding:9px 0;border-radius:999px;background:var(--glass-2);color:var(--muted);font-size:12.5px;cursor:pointer;font-family:var(--sans)}
.frost-pick-row button.on{background:var(--bao);color:var(--bao-ink);font-weight:600}
.frost-save-bar{display:flex;gap:10px;margin-top:18px}
.frost-save-bar button{flex:1;min-height:44px;padding:0;border:0;border-radius:999px;cursor:pointer;font-family:var(--sans);font-size:13px}
.frost-save-bar .frost-sb-primary{background:var(--bao);color:var(--bao-ink)}
.frost-save-bar .frost-sb-ghost{background:var(--glass-3);color:var(--muted)}
.frost-paper-note{margin-top:8px;padding:22px;border-radius:8px;text-align:center;background:var(--glass-3);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);background-image:repeating-linear-gradient(transparent 0,transparent 33px,var(--glass-2) 33px,var(--glass-2) 34px);box-shadow:var(--card-sh)}
.frost-paper-note p{margin:0 0 10px;font-size:14px;line-height:2;color:var(--ink)}
.frost-paper-note .hand{font-family:var(--hand);font-size:18px;color:var(--muted)}

/* ===== 他的一天（首页 → 豹豹状态）===== */
.frost-hisday{position:absolute;inset:0;z-index:34;background:var(--glass-3);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:calc(env(safe-area-inset-top,0px) + 42px) 22px calc(96px + env(safe-area-inset-bottom,0px));scrollbar-width:none}
.frost-hisday::-webkit-scrollbar{display:none}
.frost-hisday-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.frost-hisday-head button{width:30px;height:30px;border:0;border-radius:50%;background:var(--glass-2);color:#8a8070;cursor:pointer;font-size:17px}
.frost-hisday-head h1{margin:0;font-family:var(--serif);font-weight:400;font-size:17px;color:var(--text);letter-spacing:1px}
.frost-wants{margin:18px 0 8px;display:flex;flex-direction:column;gap:9px}
.frost-wants-title{font-family:var(--serif);font-size:14px;color:var(--text);letter-spacing:1px;margin-top:6px}
.frost-want{background:var(--glass-2);border-radius:14px;padding:10px 13px}
.frost-want.done{opacity:.75}
.frost-want-what{position:relative;font-size:14px;color:var(--text);padding-bottom:7px}
.frost-want-what i{position:absolute;left:0;bottom:0;height:3px;border-radius:2px;background:var(--accent,#b0872f);opacity:.55}
.frost-want.done .frost-want-what{padding-bottom:0}
.frost-want-why{font-size:12.5px;color:var(--soft);line-height:1.55;margin-top:3px}
.frost-hisday-foot{text-align:center;margin-top:6px;font-family:var(--hand);font-size:15px;color:var(--soft)}

/* ===== 写日记 · 信纸 ===== */
.frost-write-paper{margin-top:8px;min-height:300px;padding:22px 24px;border-radius:14px;background:#faf6ed;background-image:repeating-linear-gradient(transparent 0,transparent 33px,rgba(206,186,150,.14) 33px,rgba(206,186,150,.14) 34px);box-shadow:0 10px 26px rgba(120,104,84,.1)}
.frost-wp-date{display:inline-flex;align-items:center;height:34px;font-family:var(--serif);font-size:13px;color:#b89a78;margin-bottom:0}
.frost-wp-date input{border:0;background:none;font:inherit;color:#b89a78;outline:none;cursor:pointer;padding:0}
.frost-wp-body{display:block;width:100%;border:0;background:none;outline:none;resize:none;font-family:var(--hand);font-size:20px;line-height:34px;color:var(--text);min-height:238px}
.frost-wp-body::placeholder{color:#c4baa8}

/* ===== 聊天 · 微信式输入栏 ===== */
.frost-cbtn{width:30px;height:34px;flex:0 0 auto;border:0;background:none;padding:0;color:#aaa091;display:grid;place-items:center;cursor:pointer}
.frost-cbtn svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.5}
.frost-chat-compose{gap:6px}
/* 长按消息的操作条 */
.frost-msg-menu{display:flex;flex-wrap:wrap;gap:2px;margin-top:5px;padding:3px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--card-bd);border-radius:13px;box-shadow:0 3px 14px rgba(0,0,0,.1)}
.frost-msg-menu button{border:0;border-radius:9px;padding:6px 12px;background:transparent;color:var(--text);font-size:12.5px;cursor:pointer;transition:background .15s}
.frost-msg-menu button:active,.frost-msg-menu button:hover{background:var(--glass-3)}
.frost-msg-menu button:last-child{color:var(--faint)}
.frost-edit-sheet{padding:12px 16px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border-top:1px solid var(--card-bd)}
.frost-edit-sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.frost-edit-sheet-head span{font-size:12px;font-weight:600;color:var(--text-main)}
.frost-edit-sheet-head button{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer}
.frost-edit-sheet textarea{width:100%;border:1px solid var(--card-bd);border-radius:var(--r-sm);padding:8px 10px;font-size:13px;font-family:var(--font-ui);resize:vertical;background:var(--surface-paper);color:var(--text-main);box-sizing:border-box}
.frost-edit-sheet-actions{display:flex;align-items:center;gap:10px;margin-top:8px}
.frost-edit-sheet-hint{flex:1;font-size:10px;color:var(--muted);margin:0}
.frost-edit-sheet-actions .frost-primary{flex-shrink:0}
/* 微信式多选删除 */
.frost-select-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;margin:0 2px 4px;border-radius:14px;background:var(--glass-3);backdrop-filter:blur(8px);box-shadow:0 2px 10px rgba(120,100,90,.12)}
.frost-select-bar span{font-size:13px;color:var(--text)}
.frost-select-bar button{border:0;border-radius:999px;padding:6px 16px;font-size:13px;cursor:pointer;background:var(--glass-3);color:var(--text)}
.frost-select-bar .frost-select-del{background:linear-gradient(160deg,#e8a79f,#d98b86);color:#fff;font-weight:600}
.frost-select-bar .frost-select-del:disabled{opacity:.45}
.frost-msg-row-select{cursor:pointer;padding:2px 4px;border-radius:12px;transition:background .15s}
.frost-msg-row-select.chosen{background:rgba(233,167,159,.16)}
.frost-msg-check{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(150,135,125,.5);display:grid;place-items:center;font-size:12px;color:#fff;align-self:center}
.frost-msg-row-select.chosen .frost-msg-check{background:linear-gradient(160deg,#e8a79f,#d98b86);border-color:transparent}
.frost-csend{width:38px;height:38px;flex:0 0 auto;border:0;border-radius:50%;background:linear-gradient(160deg,#f0e2dc,#e6cdc9);display:grid;place-items:center;cursor:pointer;padding:0}
.frost-csend:disabled{opacity:.5}
.frost-csend svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:1.7}

/* ===== 原生手感：阻止 iOS 非预期行为 ===== */
html{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;overscroll-behavior:none}
body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}
.frost-message,.frost-msg-body,textarea,input{-webkit-user-select:text;user-select:text}
.frost-screen{touch-action:pan-y;overscroll-behavior-y:contain}
@media (display-mode:standalone){
  html{height:100vh;height:-webkit-fill-available}
  body{min-height:100vh;min-height:-webkit-fill-available;overflow:hidden}
}

/* ===== 真机布局收紧（必须在文件末尾——覆盖上面的完整定义）===== */
@media (max-width:520px){
  /* 真机的 safe-area 已经躲开了状态栏，再叠 40px 就是一大条空白 */
  .frost-topbar{padding-top:calc(env(safe-area-inset-top,0px) + 10px)}
  .frost-hisday{padding-top:calc(env(safe-area-inset-top,0px) + 12px)}
  .frost-nav{bottom:calc(6px + env(safe-area-inset-bottom,0px))}
  .frost-scroll{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .frost-view-chat .frost-chat-compose{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
}

/* ===== iOS PWA 高度修正 =====
   PWA 下 100dvh 会被系统扣 59px，100vh 才是真实视口高度。
   standalone 模式额外加 !important 确保不被其他规则覆盖。 */
@media (max-width:520px) and (display-mode: standalone){
  .phoneframe,.screen-wrap{height:100vh!important;min-height:100vh!important}
  .frost-screen{height:100vh}
  .frost-hisday{height:100vh}
}



/* ===== 一起读书（沉浸式全屏，盖住底部 tab）===== */
.frost-coread{position:fixed;inset:0;z-index:200;background:#f6f2ea;display:flex;flex-direction:column;overflow:hidden}
body.cr-open .frost-nav{display:none!important}
.frost-cr-head{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 14px) 18px 12px;flex:none}
.frost-cr-head > button:first-child{width:30px;height:30px;border:0;border-radius:50%;background:var(--glass-3);color:#8a8070;font-size:17px;cursor:pointer;flex:none}
.frost-cr-head h1{margin:0;font-family:var(--serif);font-weight:400;font-size:16px;color:var(--text);flex:0 1 auto;min-width:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-cr-ch{font-size:11px;color:var(--faint);flex:0 1 auto;min-width:0;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-cr-shelf{padding:8px 20px 40px;overflow-y:auto}
.frost-cr-import{display:block;text-align:center;padding:16px;border-radius:var(--r-md);background:rgba(181,138,150,.14);color:#96545e;font-size:14px;cursor:pointer;margin-bottom:16px}
.frost-cr-books{display:flex;flex-direction:column;gap:10px}
.frost-cr-book{display:flex;flex-direction:column;gap:4px;text-align:left;padding:15px;border:0;border-radius:var(--r-md);background:var(--glass-2);cursor:pointer}
.frost-cr-book b{font-family:var(--serif);font-size:15px;color:var(--text)}
.frost-cr-book span{font-size:11.5px;color:var(--faint)}
.frost-cr-reader{flex:1;display:flex;flex-direction:column;min-height:0;position:relative}
.frost-cr-text{flex:1;overflow-y:auto;padding:4px 22px 12px;-webkit-overflow-scrolling:touch}
/* 聊天栏拉出时(占底部64%)给正文底部留出等高空间，否则最后一段被挡住、拉不上去没法划线 */
.frost-cr-text.sheet-open{padding-bottom:66vh}
.frost-cr-para{margin:0 0 13px;font-size:15.5px;line-height:1.95;color:#4f473c;font-family:var(--serif)}
.frost-cr-mark{background:rgba(234,188,202,.45);border-radius:3px;padding:0 1px;cursor:pointer}
/* 她的划线=暖黄下划痕，他的批注=粉底（区分谁划的） */
.frost-cr-mark.hers{background:transparent;border-bottom:2px solid rgba(232,180,90,.85);border-radius:0}
.frost-cr-mark.his{background:rgba(234,188,202,.5)}
.frost-cr-mark-btn{border:0;background:rgba(232,180,90,.2);color:#a5791f;font-size:10.5px;padding:3px 9px;border-radius:999px;cursor:pointer;margin-left:6px;white-space:nowrap}
.frost-mood-bubble.peak{background:rgba(216,139,134,.9);color:#fff;font-weight:600;box-shadow:0 1px 6px rgba(216,139,134,.4)}
.frost-cr-notes-btn{margin-left:auto;border:0;background:rgba(181,138,150,.14);color:#96545e;font-size:11.5px;padding:5px 11px;border-radius:999px;cursor:pointer;flex:none;white-space:nowrap}
/* 点划线弹出的批注气泡 */
.frost-cr-notepop-backdrop{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:40px 28px;background:rgba(86,76,66,.28);backdrop-filter:blur(2px)}
.frost-cr-notepop{width:100%;max-width:300px;padding:18px 20px;border-radius:16px;background:#fbf8f2;box-shadow:0 18px 44px rgba(80,68,54,.3)}
.frost-cr-notepop-who{font-size:11px;color:var(--soft);letter-spacing:1px}
.frost-cr-notepop blockquote{margin:8px 0;padding-left:10px;border-left:2.5px solid rgba(234,188,202,.8);font-family:var(--serif);font-size:14px;color:#5e574c;line-height:1.7}
.frost-cr-notepop p{margin:0;font-family:var(--hand);font-size:16px;line-height:1.65;color:#8a6a74}
/* 他的笔记全书视图（顶部让出安全区，别顶进状态栏） */
.frost-cr-allnotes{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;background:#f6f2ea;padding-top:calc(env(safe-area-inset-top,0px) + 8px)}
.frost-cr-tabs{margin:2px 18px 8px;flex:none}
/* 共读笔记本：你一页我一页的纸页 */
.frost-cr-journal{padding-top:2px}
.frost-cr-jpage{position:relative;margin:0 2px 14px;padding:18px 16px 12px;border-radius:4px;background:#fbf7ef;background-image:repeating-linear-gradient(transparent,transparent 25px,rgba(206,186,150,.12) 25px,rgba(206,186,150,.12) 26px);box-shadow:0 6px 16px rgba(120,104,84,.08)}
.frost-cr-jpage.hers{transform:rotate(-.3deg)}
.frost-cr-jpage.his{transform:rotate(.3deg);background:#f7f3ee}
.frost-cr-jtape{position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(-2deg);width:52px;height:14px;background:rgba(206,196,170,.45)}
.frost-cr-jquote{font-family:var(--serif);font-size:13.5px;line-height:26px;color:#5e574c;padding-left:10px;border-left:2.5px solid rgba(234,188,202,.7);margin-bottom:8px;white-space:pre-wrap}
.frost-cr-jthought{margin:0;font-family:var(--hand);font-size:16px;line-height:26px;color:#6a6258;white-space:pre-wrap}
.frost-cr-jsign{display:block;margin-top:8px;text-align:right;font-family:var(--hand);font-size:12.5px;color:var(--faint)}
.frost-cr-jform{margin:0 2px 16px;padding:14px;border-radius:14px;background:var(--glass-3);display:flex;flex-direction:column;gap:8px}
.frost-cr-jform textarea{border:0;border-radius:10px;padding:10px 12px;background:var(--glass-3);font:inherit;font-size:13.5px;line-height:1.7;outline:none;resize:vertical}
.frost-cr-reread-btn{border:0;background:rgba(181,138,150,.16);color:#96545e;font-size:10.5px;padding:3px 9px;border-radius:999px;cursor:pointer;margin-left:6px;white-space:nowrap}
.frost-cr-allnotes-list{flex:1;overflow-y:auto;padding:6px 20px calc(env(safe-area-inset-bottom,0px) + 24px)}
.frost-cr-note-item{padding:13px 15px;border-radius:14px;background:var(--glass-3);margin-bottom:10px}
.frost-cr-note-ch{font-size:10.5px;color:var(--faint);letter-spacing:1px}
.frost-cr-note-item blockquote{margin:7px 0 6px;padding-left:10px;border-left:2.5px solid rgba(234,188,202,.8);font-family:var(--serif);font-size:13.5px;color:#5e574c;line-height:1.7}
.frost-cr-note-item p{margin:0;font-family:var(--hand);font-size:15.5px;line-height:1.6;color:#8a6a74}
/* 底部细条：翻章 + 唤起聊天，带安全区 */
.frost-cr-bar{display:flex;align-items:center;gap:10px;padding:9px 18px calc(env(safe-area-inset-bottom,0px) + 9px);flex:none;border-top:.5px solid rgba(180,170,154,.22);background:rgba(246,242,234,.92);backdrop-filter:blur(8px)}
.frost-cr-bar button{border:0;background:none;color:var(--soft);font-size:12.5px;cursor:pointer;padding:4px 4px}
.frost-cr-bar button:disabled{color:var(--faint);opacity:.4}
.frost-cr-bar span{font-size:11px;color:var(--faint)}
.frost-cr-talk{margin-left:auto;background:var(--bao)!important;color:var(--bao-ink)!important;border-radius:999px!important;padding:6px 14px!important}
/* 聊天浮层：从底部滑起，盖住阅读下半部 */
.frost-cr-sheet{position:absolute;left:0;right:0;bottom:0;height:64%;z-index:5;display:flex;flex-direction:column;background:#fbf8f2;border-radius:20px 20px 0 0;box-shadow:0 -8px 30px rgba(120,104,84,.16);animation:crSheetUp .28s ease}
@keyframes crSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.frost-cr-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 8px;flex:none;font-family:var(--serif);font-size:13px;color:var(--text)}
.frost-cr-sheet-head button{border:0;background:none;color:var(--soft);font-size:12px;cursor:pointer}
.frost-cr-chat{flex:1;overflow-y:auto;padding:8px 16px;display:flex;flex-direction:column;gap:8px}
.frost-cr-msg{display:flex;gap:7px;align-items:flex-end}
.frost-cr-msg.user{justify-content:flex-end}
.frost-cr-bubble{max-width:82%;padding:8px 12px;border-radius:13px;font-size:13.5px;line-height:1.6}
.frost-cr-msg.assistant .frost-cr-bubble{background:var(--glass-1);color:var(--ink);border-bottom-left-radius:4px}
.frost-cr-msg.user .frost-cr-bubble{background:var(--me-bg);color:#5b4a50;border-bottom-right-radius:4px}
.frost-cr-quote{display:block;font-size:11px;color:var(--soft);border-left:2px solid var(--soft);padding-left:6px;margin-bottom:4px;opacity:.85}
.frost-cr-typing{color:var(--muted);font-size:12px}
.frost-cr-compose{flex:none;padding:8px 16px calc(env(safe-area-inset-bottom,0px) + 10px);background:var(--glass-3);border-top:.5px solid rgba(180,170,154,.18)}
.frost-cr-picked{font-size:11.5px;color:var(--soft);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.frost-cr-picked button{border:0;background:none;color:var(--faint);cursor:pointer;font-size:14px}
.frost-cr-input{display:flex;gap:8px}
.frost-cr-input input{flex:1;min-width:0;border:0;border-radius:999px;padding:10px 14px;background:var(--glass-3);font:inherit;font-size:14px;outline:none}
.frost-cr-input button{border:0;border-radius:999px;padding:0 18px;background:var(--bao);color:var(--bao-ink);cursor:pointer}
.frost-cr-input button:disabled{opacity:.4}

/* 动作胶囊：他做了什么穿插在聊天流里（"老公看了看书架"式系统提示） */
.frost-action-capsule{display:flex;justify-content:center;margin:8px 0}
.frost-action-capsule span{max-width:82%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted);background:var(--glass-2);padding:4px 13px;border-radius:999px;letter-spacing:.3px}
.frost-action-card{margin:10px auto;max-width:82%;background:var(--glass-2);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-radius:14px;padding:10px 14px;border:1px solid var(--glass-2);box-shadow:0 2px 12px rgba(0,0,0,.04)}
.frost-action-card-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.frost-action-card-icon{font-size:16px;flex-shrink:0}
.frost-action-card-title{font-size:12px;font-weight:600;color:var(--text);letter-spacing:.3px}
.frost-action-card-time{font-size:10px;color:var(--faint);margin-left:auto}
.frost-action-card-body{font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:2px}
.frost-action-card-detail{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);margin-top:4px}
.frost-action-card-tag{font-size:10px;background:rgba(146,200,168,.25);color:#6a9a78;padding:1px 7px;border-radius:99px;flex-shrink:0}
.frost-action-card-preview{font-size:11px;color:var(--faint);font-style:italic;margin-top:3px;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

.frost-branch-nav{display:flex;align-items:center;gap:2px;margin-top:4px}
.frost-branch-nav button{background:none;border:none;color:#b0a898;font-size:11px;padding:2px 4px;cursor:pointer}
.frost-branch-nav button:disabled{opacity:.3;cursor:default}
.frost-branch-nav span{font-size:10px;color:#b0a898}




/* 用户自定义背景图 */
.frost-app-screen>.frost-bg-custom,.frost-welcome>.frost-bg-custom{position:absolute;inset:0;z-index:-1!important;background-size:cover;background-position:center;background-repeat:no-repeat;pointer-events:none}
.frost-screen:has(.frost-bg-custom)::before{opacity:.55}

/* 自定义背景图 · 亮图模式 */
.frost-bg-light .frost-topbar{text-shadow:0 1px 3px var(--glass-2)}
.frost-bg-light .frost-couple-row *{text-shadow:0 1px 3px var(--glass-2)}

/* ===== 暗色模式（全量覆盖）===== */
/* 调色思路：冷灰蓝底 + 暖象牙文字，不是纯黑也不是黄褐，是月光下的纸 */
.frost-bg-dark{
  --ink:#e8e4dc;--muted:#b8b2a8;--faint:#918b82;--soft:#c4a8ae;
  --bao:#3a3632;--bao-ink:#e6d6bc;--on:#8aaa7e;
  --glass-tint-light:var(--glass-tint-dark);--glass-tint-dark:32,30,28;
  --text:#e2ddd4;--text-main:#e2ddd4;--fg:#e2ddd4;--border-main:#5a554e;
  --accent:#c9a0aa;--surface-paper:#252320;--bg:#1e1c1a;
  --n-pink:#a08088;--n-mint:#7a9a72;--n-lav:#8a84a0;
  --card-sh:0 8px 22px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.06);
  --me-bg:rgba(160,120,130,calc(var(--glass-alpha) * 1.2))
}
/* 无背景图时的暗色底色 */
.frost-bg-dark .frost-screen{background:#1e1c1a}
.frost-bg-dark .frost-screen::before{opacity:.15}
/* 顶栏 */
.frost-bg-dark .frost-topbar{color:var(--text);text-shadow:0 1px 4px rgba(0,0,0,.6)}
.frost-bg-dark .frost-topbar h1{color:var(--text)}
.frost-bg-dark .frost-couple-row *{color:var(--text);text-shadow:0 1px 4px rgba(0,0,0,.5)}
.frost-bg-dark .frost-grp-title{color:var(--muted)}
/* 底部导航 */
.frost-bg-dark .frost-nav{background:rgba(28,26,24,.78);border-color:rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.frost-bg-dark .frost-nav button{color:var(--faint)}
.frost-bg-dark .frost-nav button.active{color:var(--text)}
.frost-bg-dark .frost-nav .frost-nav-chat{background:linear-gradient(160deg,#6a5a56,#5a4846);box-shadow:0 10px 22px rgba(0,0,0,.35)}
/* 玻璃卡片基类 */
.frost-bg-dark .frost-setrow,
.frost-bg-dark .frost-card,
.frost-bg-dark .frost-mood-card,
.frost-bg-dark .frost-glass-card,
.frost-bg-dark .frost-setting-group,
.frost-bg-dark .frost-field-lg,
.frost-bg-dark .frost-ops-card{
  background:rgba(32,30,28,calc(var(--glass-alpha) * 1.6));
  backdrop-filter:blur(26px) saturate(1.3);-webkit-backdrop-filter:blur(26px) saturate(1.3);
  border-color:rgba(255,255,255,.08);color:var(--text)
}
.frost-bg-dark .frost-setrow b,.frost-bg-dark .frost-setting-group h2{color:var(--ink)}
.frost-bg-dark .frost-setrow span,.frost-bg-dark .frost-setting-group p{color:var(--muted)}
/* 聊天气泡 */
.frost-bg-dark .frost-message.theirs{background:rgba(32,30,28,calc(var(--glass-alpha) * 1.5));color:var(--text)}
.frost-bg-dark .frost-message.mine{background:rgba(140,105,115,calc(var(--glass-alpha) * 1.3));color:#f0ece4}
.frost-bg-dark .frost-message.spontaneous{background:rgba(32,30,28,calc(var(--glass-alpha) * 1.5))}
.frost-bg-dark .frost-message small{color:var(--faint)}
.frost-bg-dark .frost-notice{color:#d4cfc8;background:rgba(40,38,34,.7)}
.frost-bg-dark .frost-typing{color:var(--muted);background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-empty{color:var(--faint)}
.frost-bg-dark .frost-date-divider{background:rgba(32,30,28,.6);color:var(--faint)}
/* 输入框 */
.frost-bg-dark .frost-chat-compose textarea{background:rgba(32,30,28,.6);color:var(--text);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-inline-form input,.frost-bg-dark .frost-search input,.frost-bg-dark .frost-field input,.frost-bg-dark .frost-field textarea{background:rgba(32,30,28,.5);color:var(--text)}
.frost-bg-dark .frost-csend{background:linear-gradient(160deg,#6a5a56,#5a4846)}
/* 日记 */
.frost-bg-dark .frost-diary-card{background:rgba(32,30,28,.5);color:var(--text)}
.frost-bg-dark .frost-diary-card b{color:var(--text)}
.frost-bg-dark .frost-diary-card i,.frost-bg-dark .frost-diary-card em{color:var(--muted)}
.frost-bg-dark .frost-diary-detail{background:rgba(30,28,26,.85);box-shadow:0 10px 26px rgba(0,0,0,.2);background-image:repeating-linear-gradient(transparent,transparent 33px,rgba(255,255,255,.04) 33px,rgba(255,255,255,.04) 34px)}
.frost-bg-dark .frost-diary-detail h2{color:var(--text)}
.frost-bg-dark .frost-diary-body{color:var(--muted)}
/* 便签 */
.frost-bg-dark .frost-memo{background:rgba(32,30,28,.5);box-shadow:0 7px 16px rgba(0,0,0,.15)}
.frost-bg-dark .frost-memo-text{color:var(--text)}
.frost-bg-dark .frost-memo-from{color:var(--faint)}
.frost-bg-dark .frost-memo-sheet{background:rgba(30,28,26,.9);background-image:repeating-linear-gradient(transparent,transparent 26px,rgba(255,255,255,.04) 26px,rgba(255,255,255,.04) 27px);box-shadow:0 22px 52px rgba(0,0,0,.4)}
.frost-bg-dark .frost-memo-sheet-text{color:var(--text)}
.frost-bg-dark .frost-memo-sheet-from{color:var(--muted)}
.frost-bg-dark .frost-memo-tape{background:rgba(80,74,66,.5)}
.frost-bg-dark .frost-memo-del-btn{background:rgba(60,56,50,.8);color:var(--muted)}
.frost-bg-dark .frost-memo-add{border-color:rgba(255,255,255,.12);color:var(--faint)}
.frost-bg-dark .frost-memo-backdrop{background:rgba(10,8,6,.5)}
/* 记忆库 */
.frost-bg-dark .frost-mem-item{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-mem-body,.frost-bg-dark .frost-mem-hand{color:var(--muted)}
.frost-bg-dark .frost-mem-theme-sum{background:rgba(120,150,110,.12);color:#8aaa7e}
.frost-bg-dark .frost-mem-theme-head b{color:var(--text)}
.frost-bg-dark .frost-mem-theme-head span{color:var(--faint)}
.frost-bg-dark .frost-mem-tabs{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-mem-tabs button{color:var(--faint)}
.frost-bg-dark .frost-mem-tabs button.active{background:rgba(50,48,44,.8);color:var(--text)}
.frost-bg-dark .frost-mem-type{background:rgba(120,150,110,.15);color:#8aaa7e}
.frost-bg-dark .frost-mem-wt.high{background:rgba(180,100,110,.2);color:#c9a0aa}
.frost-bg-dark .frost-mem-wt.mid{background:rgba(160,140,100,.18);color:#b8a87e}
.frost-bg-dark .frost-mem-edit{background:rgba(40,38,34,.6);color:var(--text)}
.frost-bg-dark .frost-mem-topic{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-mt-head{color:var(--text)}
.frost-bg-dark .frost-mt-narr{color:var(--muted)}
/* 纪念日/心愿单 */
.frost-bg-dark .frost-row{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-row .frost-rt b{color:var(--text)}
.frost-bg-dark .frost-row .frost-rt span{color:var(--muted)}
/* 日历 */
.frost-bg-dark .frost-calendar-grid{background:rgba(32,30,28,.4)}
.frost-bg-dark .frost-calendar-head strong{color:var(--text)}
.frost-bg-dark .frost-calendar-head button{background:rgba(50,48,44,.6);color:var(--muted)}
.frost-bg-dark .frost-days button{color:var(--muted)}
.frost-bg-dark .frost-days button.today{background:var(--bao);color:var(--bao-ink)}
.frost-bg-dark .frost-day-sheet,.frost-bg-dark .frost-sheet.frost-event-editor{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-sched-item{background:rgba(32,30,28,.5);color:var(--text)}
.frost-bg-dark .frost-day-diary{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-day-diary b{color:var(--text)}
.frost-bg-dark .frost-cal-inline{background:rgba(32,30,28,.4);border-color:rgba(255,255,255,.08)}
/* 时间线 */
.frost-bg-dark .frost-tl-item{border-left-color:rgba(255,255,255,.1)}
.frost-bg-dark .frost-tl-item::before{background:#6a6460;box-shadow:0 0 0 3px rgba(50,48,44,.8)}
.frost-bg-dark .frost-tl-time{color:#c9a0aa}
.frost-bg-dark .frost-tl-text{color:var(--muted)}
.frost-bg-dark .frost-tl-text b{color:var(--text)}
.frost-bg-dark .frost-hist-month{color:var(--muted)}
.frost-bg-dark .frost-lrtl::before{background:rgba(255,255,255,.1)}
.frost-bg-dark .frost-lrtl-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-lrtl-dot{box-shadow:0 0 0 3px rgba(50,48,44,.85)}
.frost-bg-dark .frost-lrtl-time{color:#c9a0aa}
.frost-bg-dark .frost-lrtl-title{color:var(--text)}
.frost-bg-dark .frost-lrtl-tag{background:rgba(255,255,255,.08);color:var(--muted)}
.frost-bg-dark .frost-tl-addbar button{background:transparent;border-color:rgba(255,255,255,.12);color:var(--muted)}
.frost-bg-dark .frost-hist-search{background:rgba(32,30,28,.5);color:var(--muted)}
.frost-bg-dark .frost-hist-search input{color:var(--text)}
/* 功能页 */
.frost-bg-dark .frost-collection-home button{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-collection-home button b{color:var(--text)}
.frost-bg-dark .frost-collection-home button span{color:#c9a0aa}
.frost-bg-dark .frost-collection-list button{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-collection-list b{color:var(--text)}
.frost-bg-dark .frost-ftile{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08);box-shadow:0 8px 18px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.06)}
/* 足迹 */
.frost-bg-dark .frost-fp-card{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08);box-shadow:0 6px 18px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.05)}
.frost-bg-dark .frost-fp-mapwrap{background:rgba(32,30,28,.4);border-color:rgba(255,255,255,.08)}
/* 思考链 / 工具日志 */
.frost-bg-dark .frost-think-body{border-left-color:rgba(255,255,255,.12);color:var(--muted)}
.frost-bg-dark .frost-toollog-body{border-left-color:rgba(160,180,200,.2)}
/* 搜索/会话 */
.frost-bg-dark .frost-search,.frost-bg-dark .frost-session-info,.frost-bg-dark .frost-sheet{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-session-row{border-top-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-session-row b{color:var(--text)}
.frost-bg-dark .frost-session-row span{color:var(--faint)}
.frost-bg-dark .frost-session-row>button:not(:first-child){background:rgba(50,48,44,.6);color:var(--muted)}
/* 分段选择器 */
.frost-bg-dark .frost-seg{background:rgba(32,30,28,.5)}
.frost-bg-dark .frost-seg button{color:var(--faint)}
.frost-bg-dark .frost-seg button.active{background:rgba(50,48,44,.8);color:var(--text)}
/* 开关 */
.frost-bg-dark .frost-switch{background:rgba(80,76,70,.6)}
/* 选心情药丸 */
.frost-bg-dark .frost-pick-opts button{background:rgba(50,48,44,.6);color:var(--muted)}
.frost-bg-dark .frost-status-own input{background:rgba(50,48,44,.6);color:var(--text)}
/* 写日记信纸 */
.frost-bg-dark .frost-write-paper{background:rgba(30,28,26,.85);background-image:repeating-linear-gradient(transparent,transparent 33px,rgba(255,255,255,.04) 33px,rgba(255,255,255,.04) 34px);box-shadow:0 10px 26px rgba(0,0,0,.2)}
.frost-bg-dark .frost-wp-body{color:var(--text)}
.frost-bg-dark .frost-wp-body::placeholder{color:#6a6460}
.frost-bg-dark .frost-wp-date,.frost-bg-dark .frost-wp-date input{color:#c9a0aa}
/* 纸纹便签 */
.frost-bg-dark .frost-paper-note{background:rgba(30,28,26,.85);background-image:repeating-linear-gradient(transparent,transparent 33px,rgba(255,255,255,.04) 33px,rgba(255,255,255,.04) 34px);box-shadow:0 10px 26px rgba(0,0,0,.2)}
.frost-bg-dark .frost-paper-note p{color:var(--muted)}
/* 他的一天 */
.frost-bg-dark .frost-hisday{background:rgba(28,26,24,.85)}
.frost-bg-dark .frost-hisday-head button{background:rgba(50,48,44,.6);color:var(--muted)}
/* 心情大页面 */
.frost-bg-dark .frost-moodpage{background:rgba(28,26,24,.85)}
.frost-bg-dark .frost-mp-card{background:rgba(32,30,28,.6)}
.frost-bg-dark .frost-mp-word{color:var(--text)}
.frost-bg-dark .frost-mp-voice{color:var(--muted)}
.frost-bg-dark .frost-mp-htitle{color:var(--text)}
/* 换头像弹层 */
.frost-bg-dark .frost-avatar-backdrop{background:rgba(10,8,6,.5)}
.frost-bg-dark .frost-avatar-sheet{background:rgba(30,28,26,.9);box-shadow:0 14px 40px rgba(0,0,0,.4)}
.frost-bg-dark .frost-avatar-sheet h3{color:var(--text)}
/* 长按菜单 */
.frost-bg-dark .frost-msg-menu button:last-child{background:transparent;color:var(--faint)}
/* 更新日志 */
.frost-bg-dark .frost-changelog-date{color:#c9a0aa;border-bottom-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-changelog-text{color:var(--muted)}
.frost-bg-dark .frost-changelog-tag{background:rgba(120,170,140,.15);color:#8aaa7e}
.frost-bg-dark .frost-changelog-item .frost-changelog-tag[data-tag="修复"]{background:rgba(180,130,110,.15);color:#c4a090}
.frost-bg-dark .frost-changelog-item .frost-changelog-tag[data-tag="优化"]{background:rgba(130,150,180,.15);color:#98aac0}
/* HTML 抽屉 */
.frost-bg-dark .frost-html-drawer{background:rgba(28,26,24,.92)}
/* 线路选择菜单 */
.frost-bg-dark .frost-line-menu{background:rgba(28,26,24,.92)}
.frost-bg-dark .frost-line-menu button{color:var(--text)}
.frost-bg-dark .frost-line-menu button.active{background:rgba(100,140,90,.15);color:#8aaa7e}
.frost-bg-dark .frost-line-chip{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.1);color:var(--text)}
/* 首页天数 */
.frost-bg-dark .frost-home-days>span{color:var(--faint)}
.frost-bg-dark .frost-home-days strong{color:#c9a0aa}
.frost-bg-dark .frost-home-days em{color:var(--faint)}
.frost-bg-dark .frost-home-person b{color:var(--text)}
/* 共读 */
.frost-bg-dark .frost-coread{background:#1e1c1a}
.frost-bg-dark .frost-cr-para{color:var(--muted)}
.frost-bg-dark .frost-cr-bar{background:rgba(28,26,24,.92);border-top-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-cr-sheet{background:rgba(28,26,24,.95);box-shadow:0 -8px 30px rgba(0,0,0,.3)}
.frost-bg-dark .frost-cr-msg.assistant .frost-cr-bubble{background:rgba(40,38,34,.7);color:var(--text)}
.frost-bg-dark .frost-cr-compose{background:rgba(32,30,28,.8);border-top-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-cr-input input{background:rgba(50,48,44,.6);color:var(--text)}
/* 编辑弹层 */
.frost-bg-dark .frost-edit-sheet{background:rgba(28,26,24,.9);border-top-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-edit-sheet textarea{background:rgba(40,38,34,.6);color:var(--text);border-color:rgba(255,255,255,.08)}
/* 滑块 */
.frost-bg-dark .frost-range{background:rgba(60,56,52,.5)}
/* 真机 body 底色 */
@media(max-width:520px){.frost-bg-dark~script,.frost-bg-dark{}.frost-screen.frost-bg-dark~*{}}


/* === 实时活动卡片 === */
.frost-activity-card{background:var(--glass-2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:13px;padding:10px 13px;margin:2px 0;border:1px solid var(--glass-2);font-size:.8rem}
.frost-activity-card.working{border-color:rgba(232,168,124,.4);animation:frost-activity-pulse 2s ease-in-out infinite}
.frost-activity-card.interrupted{border-color:rgba(226,125,96,.4)}
.frost-activity-card.done{border-color:rgba(139,198,160,.4)}
.frost-activity-card.error{border-color:rgba(201,84,77,.3)}
.frost-activity-head{display:flex;align-items:center;gap:5px;margin-bottom:5px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.frost-activity-arrow{margin-left:auto;color:var(--muted,#9a9183);font-size:.7rem;flex-shrink:0}
.frost-activity-icon{font-size:.9rem;line-height:1}
.frost-activity-title{font-weight:600;font-size:.8rem;color:var(--ink,#3a3630);letter-spacing:.3px}
.frost-activity-round{color:var(--muted,#a09a91);font-size:.72rem}
.frost-activity-steps{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.frost-activity-steps::-webkit-scrollbar{width:3px}
.frost-activity-steps::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:2px}
.frost-activity-step{display:flex;align-items:flex-start;gap:5px;color:var(--muted,#a09a91);font-size:.72rem;line-height:1.35;font-family:var(--mono,SF Mono,ui-monospace,monospace)}
.frost-activity-step.current{color:var(--ink,#3a3630);font-weight:500}
.frost-activity-step.fail{color:#c9544d}
.frost-activity-dot{width:12px;text-align:center;flex-shrink:0;font-size:.65rem;margin-top:1px}
.frost-activity-dot.pulse{animation:frost-dot-blink 1s ease-in-out infinite;color:#e8a87c}
@keyframes frost-activity-pulse{0%,100%{opacity:1}50%{opacity:.75}}
@keyframes frost-dot-blink{0%,100%{opacity:1}50%{opacity:.25}}
.frost-msg-row-activity{margin:4px 0}
.frost-msg-row-activity .frost-message{background:transparent!important;box-shadow:none!important;padding:0!important;border:0!important}
.frost-bg-dark .frost-activity-card{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08)}
/* === 游戏结果卡片 === */
.frost-game-card{background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border-radius:14px;padding:12px 14px;margin:6px 0 2px;border:1px solid var(--glass-2);overflow:hidden}
.frost-game-card-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.frost-game-card-icon{font-size:1.1rem;line-height:1}
.frost-game-card-name{font-weight:600;font-size:.82rem;color:var(--ink);letter-spacing:.3px}
.frost-game-card-loc{margin-left:auto;font-size:.7rem;color:var(--muted,#9a9183);background:var(--glass-1);padding:2px 8px;border-radius:10px}
.frost-game-card-text{font-size:.75rem;line-height:1.6;color:var(--ink);opacity:.82;white-space:pre-wrap;cursor:pointer;max-height:100px;overflow:hidden;position:relative;font-family:var(--sans)}
.frost-game-card-text.expanded{max-height:none}
.frost-game-card-text:not(.expanded)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:28px;background:linear-gradient(transparent,var(--glass-2))}
.frost-game-card-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--glass-2)}
.frost-game-stat{display:flex;flex-direction:column;align-items:center;padding:4px 8px;background:var(--glass-1);border-radius:8px;min-width:44px}
.frost-game-stat small{font-size:.6rem;color:var(--muted,#9a9183);letter-spacing:.3px;white-space:nowrap}
.frost-game-stat b{font-size:.78rem;color:var(--ink);font-weight:600;white-space:nowrap}
.frost-bg-dark .frost-game-card{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-game-card-text:not(.expanded)::after{background:linear-gradient(transparent,rgba(32,30,28,.5))}
.frost-bg-dark .frost-game-stat{background:rgba(255,255,255,.05)}

/* === 游戏厅面板 === */
.frost-arcade{display:flex;flex-direction:column;height:calc(100vh - 100px);padding:0}
.frost-arcade-head{padding:12px 16px;text-align:center;font-family:var(--sans)}
.frost-arcade-head span{font-size:14px;font-weight:600;color:var(--ink);display:block}
.frost-arcade-head small{font-size:11px;color:var(--muted,#9a9183);margin-top:2px;display:block}
.frost-arcade-frame-wrap{flex:1;border-radius:16px;overflow:hidden;margin:0 4px 8px;border:1px solid var(--glass-2);background:var(--glass-1);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.frost-arcade-frame{display:block;width:100%;height:100%;border:0;background:#FDF6F7}
.frost-bg-dark .frost-arcade-frame-wrap{border-color:rgba(255,255,255,.08);background:rgba(32,30,28,.4)}


/* === 加载更早消息 === */
.frost-load-more{display:block;margin:8px auto 12px;padding:6px 16px;border:1px solid var(--card-bd);border-radius:20px;background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--muted,#9a9183);font-size:.78rem;cursor:pointer;font-family:var(--sans)}
.frost-load-more:active{background:var(--glass-3)}
.frost-bg-dark .frost-load-more{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08);color:var(--faint)}

/* === 运维面板 tiles === */
.frost-ops-tile{background:var(--glass-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-bd);border-radius:12px;padding:10px 13px;margin-bottom:8px}
.frost-ops-tile.warn{border-color:rgba(201,84,77,.2);background:rgba(201,84,77,.06)}
.frost-ops-tile-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.82rem}
.frost-ops-tile-body{font-size:.78rem;color:var(--muted,#9a9183)}
.frost-ops-tiles-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.frost-ops-tile.small{text-align:center;padding:10px}
.frost-ops-tile.small .frost-ops-tile-head{justify-content:center;margin-bottom:4px}
.frost-ops-num{font-size:1.3rem;font-weight:700;color:var(--ink,#5b544a);letter-spacing:-.5px}
.frost-ops-num.big{font-size:1.6rem}
.frost-ops-num.warn{color:#c9544d}
.frost-ops-unit{font-size:.72rem;color:var(--muted);margin:0 2px}
.frost-ops-label{font-size:.72rem;color:var(--muted);display:block;margin-top:2px}
.frost-ops-stat-row{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:4px}
.frost-ops-bar{height:6px;background:var(--glass-2);border-radius:3px;overflow:hidden}
.frost-ops-bar-fill{height:100%;background:linear-gradient(90deg,#8bc6a0,#e8a87c);border-radius:3px;transition:width .3s}
.frost-bg-dark .frost-ops-tile{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-ops-num{color:var(--text)}

/* ===== 小红书链接预览卡 ===== */
.frost-xhs-card{position:relative;margin:6px 0 2px;border:1px solid rgba(255,90,95,.42);border-radius:14px;overflow:hidden;background:var(--glass-3);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);max-width:280px;box-shadow:0 8px 22px rgba(120,104,84,.08),inset 0 1px 0 var(--glass-2)}
.frost-xhs-card:active{transform:scale(.99)}
.frost-xhs-cover{width:100%;height:150px;object-fit:cover;display:block;background:var(--glass-2)}
.frost-xhs-cover.empty{display:flex;align-items:center;justify-content:center;font-size:40px;height:120px}
.frost-xhs-count{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:2px 7px;border-radius:10px}
.frost-xhs-body{padding:8px 10px 10px}
.frost-xhs-title{font-size:14px;font-weight:600;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.frost-xhs-desc{font-size:12px;color:var(--muted);line-height:1.4;margin-top:3px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.frost-xhs-meta{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--faint)}
.frost-xhs-ava{width:18px;height:18px;border-radius:50%;object-fit:cover}
.frost-xhs-author{font-weight:600;color:var(--text);max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-xhs-stats{margin-left:auto;white-space:nowrap}
.frost-xhs-del{position:absolute;top:6px;right:6px;width:22px;height:22px;border:none;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.frost-xhs-skeleton .frost-xhs-cover.sk{height:150px;background:linear-gradient(90deg,var(--glass-2) 25%,var(--glass-3) 37%,var(--glass-2) 63%);background-size:400% 100%;animation:frostXhsSk 1.3s ease infinite}
.frost-xhs-lines{padding:10px}
.frost-xhs-lines .sk{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--glass-2) 25%,var(--glass-3) 37%,var(--glass-2) 63%);background-size:400% 100%;animation:frostXhsSk 1.3s ease infinite;margin-bottom:7px}
.frost-xhs-lines .sk.short{width:60%}
.frost-xhs-loading{padding:0 10px 10px;font-size:12px;color:var(--faint)}
.frost-xhs-error{padding:12px;font-size:12px;color:var(--soft)}
@keyframes frostXhsSk{0%{background-position:100% 0}100%{background-position:-100% 0}}
.frost-bg-dark .frost-xhs-card{background:rgba(32,30,28,.55);border-color:rgba(255,90,95,.25);box-shadow:0 8px 22px rgba(0,0,0,.25)}
.frost-bg-dark .frost-xhs-cover{background:rgba(20,18,16,.5)}
.frost-bg-dark .frost-xhs-title,.frost-bg-dark .frost-xhs-author{color:var(--text)}
.frost-bg-dark .frost-xhs-desc,.frost-bg-dark .frost-xhs-meta,.frost-bg-dark .frost-xhs-loading{color:var(--muted)}
.frost-bg-dark .frost-xhs-error{color:#d9b3ba}

/* Hue slider rainbow gradient */
.frost-hue-range { -webkit-appearance: none; appearance: none; height: 8px; border-radius: 4px; outline: none;
  background: linear-gradient(to right, hsl(0,70%,50%), hsl(60,70%,50%), hsl(120,70%,50%), hsl(180,70%,50%), hsl(240,70%,50%), hsl(300,70%,50%), hsl(360,70%,50%)); }
.frost-hue-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.2); cursor: pointer; }
.frost-bg-dark .frost-hue-range {
  background: linear-gradient(to right, hsl(0,50%,60%), hsl(60,50%,60%), hsl(120,50%,60%), hsl(180,50%,60%), hsl(240,50%,60%), hsl(300,50%,60%), hsl(360,50%,60%)); }

/* 记忆演进时间线 */
.frost-mem-evo{margin-top:8px;font-size:11px}
.frost-mem-evo>summary{cursor:pointer;color:#c8a882;list-style:none;user-select:none;display:inline-flex;align-items:center;gap:4px}
.frost-mem-evo>summary::-webkit-details-marker{display:none}
.frost-mem-evo>summary::before{content:"\25B8";display:inline-block;transition:transform .15s}
.frost-mem-evo[open]>summary::before{transform:rotate(90deg)}
.frost-mem-evo-tl{margin:7px 0 2px;padding-left:10px;border-left:2px solid var(--glass-3);display:flex;flex-direction:column;gap:7px}
.frost-mem-evo-step{display:flex;gap:8px;align-items:baseline;opacity:.5}
.frost-mem-evo-step.now{opacity:1}
.frost-mem-evo-date{flex:0 0 auto;font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}
.frost-mem-evo-state{flex:1;color:var(--text)}
.frost-mem-evo-step.now .frost-mem-evo-state{font-weight:600}

/* 记忆多选删除 */
.frost-mem-manage{margin:2px 0 10px;font-size:12px;color:#c8a882;background:none;border:1px solid var(--glass-3);padding:5px 12px;border-radius:20px;cursor:pointer}
.frost-mem-selbar{display:flex;align-items:center;gap:10px;margin:2px 0 10px;font-size:13px}
.frost-mem-selbar>span{color:var(--faint);flex:1}
.frost-mem-selbar button{padding:5px 14px;border-radius:20px;border:1px solid var(--glass-3);background:var(--glass-2);color:var(--text);cursor:pointer;font-size:12px}
.frost-mem-selbar-del{background:#e08a8a !important;color:#fff !important;border-color:#e08a8a !important}
.frost-mem-selbar-del:disabled{opacity:.4;cursor:default}
.frost-mem-sel{display:inline-flex;align-items:center;margin-right:8px;vertical-align:top}
.frost-mem-sel input{width:17px;height:17px;accent-color:#c8a882}

/* ── 动手权限：待她点头的卡片按钮（2026-09-17 阿珩加）── */
.frost-activity-card.pending{border-color:rgba(232,168,124,.55)}
.frost-approve{margin-top:7px;padding-top:7px;border-top:1px dashed rgba(0,0,0,.08)}
.frost-approve-what{font-size:.72rem;color:var(--muted,#a09a91);font-family:var(--mono,SF Mono,ui-monospace,monospace);line-height:1.45;margin-bottom:6px;word-break:break-all}
.frost-approve-btns{display:flex;gap:6px}
.frost-approve-yes,.frost-approve-no{border:1px solid transparent;border-radius:8px;padding:4px 11px;font-size:.74rem;cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:background .15s ease}
.frost-approve-yes{background:rgba(139,198,160,.18);color:#3f7a56;border-color:rgba(139,198,160,.45)}
.frost-approve-yes:hover{background:rgba(139,198,160,.3)}
.frost-approve-no{background:rgba(0,0,0,.03);color:var(--muted,#8a8378);border-color:rgba(0,0,0,.08)}
.frost-approve-no:hover{background:rgba(0,0,0,.06)}
.frost-approve-done{font-size:.72rem;color:var(--muted,#a09a91)}
.frost-bg-dark .frost-approve{border-top-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-approve-yes{background:rgba(139,198,160,.16);color:#9ed3b1;border-color:rgba(139,198,160,.35)}
.frost-bg-dark .frost-approve-no{background:rgba(255,255,255,.05);color:#c8c2b8;border-color:rgba(255,255,255,.1)}

/* ===== 2026-10-02 动作卡片 v2：他干活时的样子（线条图标 / 可点开详情 / Diff / 停下） ===== */
.frost-activity-card.v2{padding:9px 11px 8px;border-radius:15px;animation:none}
.frost-activity-card.v2.working{border-color:rgba(232,168,124,.42);box-shadow:0 0 0 3px rgba(232,168,124,.08)}
.frost-act2-head{display:flex;align-items:center;gap:7px;cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:22px}
.frost-act2-state{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:rgba(139,198,160,.2);color:#4f8a63}
.frost-act2-state.working{background:rgba(232,168,124,.16);color:#c98a5a}
.frost-act2-state.pending,.frost-act2-state.stopped,.frost-act2-state.interrupted{background:rgba(232,168,124,.2);color:#b9774a}
.frost-act2-state.error{background:rgba(201,84,77,.14);color:#b4553f}
.frost-act2-spin{width:11px;height:11px;border-radius:50%;border:1.8px solid currentColor;border-right-color:transparent;animation:frost-act2-rot .8s linear infinite;display:block}
@keyframes frost-act2-rot{to{transform:rotate(360deg)}}
.frost-act2-title{font-weight:600;font-size:.82rem;color:var(--ink,#3a3630);letter-spacing:.2px}
.frost-act2-sub{font-size:.7rem;color:var(--muted,#9a9183);font-variant-numeric:tabular-nums}
.frost-act2-chev{margin-left:auto;color:var(--muted,#9a9183);font-size:.85rem;line-height:1}
.frost-act2-stop{margin-left:auto;border:1px solid rgba(201,84,77,.28);background:rgba(255,255,255,.35);color:#b4553f;border-radius:999px;padding:2px 11px;font-size:.72rem;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.frost-act2-stop:disabled{opacity:.55}
.frost-act2-summary{display:flex;align-items:center;gap:6px;margin:5px 0 1px 27px;font-size:.74rem;color:var(--muted,#8f887d)}
.frost-act2-steps{display:flex;flex-direction:column;gap:1px;margin-top:6px;max-height:300px;overflow-y:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;border-left:1px solid rgba(0,0,0,.07);margin-left:9px;padding-left:9px}
.frost-tstep-row{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;width:100%;padding:4px 4px;border-radius:8px;cursor:pointer;font-size:.75rem;line-height:1.3;color:var(--text,#5c564d);-webkit-tap-highlight-color:transparent}
.frost-tstep-row:disabled{cursor:default}
.frost-tstep-row:not(:disabled):hover{background:rgba(0,0,0,.035)}
.frost-tstep.current .frost-tstep-row{color:var(--ink,#3a3630)}
.frost-tstep.fail .frost-tstep-row{color:#b4553f}
.frost-tstep-icon{width:16px;display:grid;place-items:center;color:var(--muted,#9a9183);flex-shrink:0}
.frost-tstep.current .frost-tstep-icon{color:#c98a5a}
.frost-tstep-verb{flex-shrink:0;color:var(--muted,#8f887d)}
.frost-tstep-target{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono,SF Mono,ui-monospace,monospace);font-size:.72rem;color:inherit}
.frost-tstep-delta{display:inline-flex;gap:4px;font-family:var(--mono,SF Mono,ui-monospace,monospace);font-size:.68rem;flex-shrink:0}
.frost-tstep-delta .add{color:#4f8a63;font-weight:600}.frost-tstep-delta .del{color:#b4553f;font-weight:600}
.frost-tstep-flag{font-size:.66rem;padding:0 6px;border-radius:999px;background:rgba(201,84,77,.1);color:#b4553f;flex-shrink:0}
.frost-tstep-ms{margin-left:auto;font-size:.66rem;color:var(--muted,#a8a196);font-variant-numeric:tabular-nums;flex-shrink:0}
.frost-tstep-chev{color:var(--muted,#a8a196);transition:transform .15s ease;flex-shrink:0}
.frost-tstep.open .frost-tstep-chev{transform:rotate(90deg)}
.frost-tstep-detail{margin:2px 0 6px 22px}
.frost-tstep-pre,.frost-tstep-diff{margin:0;max-height:220px;overflow:auto;padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.42);border:1px solid rgba(0,0,0,.05);font-family:var(--mono,SF Mono,ui-monospace,monospace);font-size:.68rem;line-height:1.45;color:var(--text,#5c564d);white-space:pre;-webkit-overflow-scrolling:touch}
.frost-tstep-diff span{display:block}
.frost-tstep-diff .add{background:rgba(139,198,160,.2);color:#3f7a56}
.frost-tstep-diff .del{background:rgba(201,84,77,.1);color:#a24a3a}
.frost-tstep-diff .hunk{color:var(--muted,#9a9183)}
.frost-tstep-err{font-size:.7rem;color:#b4553f;line-height:1.45;margin-bottom:5px;word-break:break-all}
.frost-tstep-cmd{margin-top:4px;font-family:var(--mono,SF Mono,ui-monospace,monospace);font-size:.66rem;color:var(--muted,#9a9183);word-break:break-all}
.frost-tstep.thinking{display:flex;align-items:center;gap:6px;padding:4px;font-size:.74rem}
.frost-act2-dots{display:inline-flex;gap:2px}
.frost-act2-dots i{width:3px;height:3px;border-radius:50%;background:#c98a5a;animation:frost-dot-blink 1.2s ease-in-out infinite}
.frost-act2-dots i:nth-child(2){animation-delay:.2s}.frost-act2-dots i:nth-child(3){animation-delay:.4s}
.frost-bg-dark .frost-act2-steps{border-left-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-act2-stop{background:rgba(255,255,255,.06);color:#e3a092;border-color:rgba(227,160,146,.3)}
.frost-bg-dark .frost-tstep-row:not(:disabled):hover{background:rgba(255,255,255,.05)}
.frost-bg-dark .frost-tstep-pre,.frost-bg-dark .frost-tstep-diff{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.06);color:#d6d0c6}
.frost-bg-dark .frost-tstep-diff .add{background:rgba(139,198,160,.14);color:#9ed3b1}
.frost-bg-dark .frost-tstep-diff .del{background:rgba(201,84,77,.16);color:#e8a294}
.frost-act2-state.partial{background:rgba(232,168,124,.2);color:#b9774a}
.frost-act2-summary.warn{color:#b9774a}
.frost-act2-steps{overflow-x:hidden}
.frost-tstep-detail{min-width:0;max-width:calc(100% - 22px)}
.frost-tstep-pre,.frost-tstep-diff{max-width:100%;box-sizing:border-box}
.frost-act2-bang{font-size:.72rem;font-weight:700;line-height:1}
.frost-bg-dark .frost-act2-summary.warn{color:#e8b48c}

/* ===== 2026-10-02 他想做的（心愿单进化版） ===== */
.frost-wishes{margin-bottom:18px;padding:12px 12px 4px;border-radius:16px;background:var(--glass-2);border:1px solid var(--glass-2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.frost-wishes-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.frost-wishes-title{font-weight:600;font-size:.92rem;color:var(--ink,#3a3630)}
.frost-wishes-sub{font-size:.72rem;color:var(--muted,#9a9183);margin-top:2px;line-height:1.45}
.frost-wish{padding:10px 0 11px;border-top:1px solid rgba(0,0,0,.06)}
.frost-wish:first-of-type{border-top:none}
.frost-wish-tags{display:flex;gap:5px;margin-bottom:5px}
.frost-wish-chip{font-size:10px;padding:1px 8px;border-radius:999px;background:rgba(232,168,124,.16);color:#b9774a}
.frost-wish-chip.approved,.frost-wish-chip.doing{background:rgba(139,198,160,.2);color:#4f8a63}
.frost-wish-chip.done{background:rgba(0,0,0,.05);color:var(--muted,#9a9183)}
.frost-wish-chip.size{background:rgba(0,0,0,.04);color:var(--muted,#8f887d)}
.frost-wish-want{font-size:.92rem;line-height:1.65;color:var(--ink,#3a3630)}
.frost-wish-why{font-size:.8rem;line-height:1.6;color:var(--text,#5c564d);margin-top:3px}
.frost-wish-saw{font-size:.74rem;line-height:1.6;color:var(--muted,#8f887d);margin-top:6px;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}
.frost-wish-saw-k{font-size:10px;color:var(--muted,#a8a196);margin-right:2px}
.frost-wish-src{font-size:10.5px;padding:1px 7px;border-radius:7px;background:rgba(255,255,255,.45);border:1px solid rgba(0,0,0,.06);color:var(--text,#5c564d);text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frost-wish-note{font-size:.76rem;color:#b9774a;margin-top:5px}
.frost-wish-btns{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.frost-wish-hint{font-size:.72rem;color:#4f8a63;margin-top:7px}
.frost-bg-dark .frost-wishes{background:rgba(32,30,28,.5);border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-wish{border-top-color:rgba(255,255,255,.07)}
.frost-bg-dark .frost-wish-src{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08);color:#d6d0c6}
.frost-wishes-head .frost-btn-s{white-space:nowrap;flex-shrink:0}

/* ===== 2026-10-03 细款龙藏体（她选的）：他写的东西照「括号手写」的气质——小一号、偏灰、行距宽，显得细和飘 ===== */
.frost-memo-text{font-size:15.5px;line-height:1.65;color:var(--text);letter-spacing:.02em}
.frost-memo-sheet-text{font-size:16.5px;line-height:1.9;color:var(--text);letter-spacing:.03em}
.frost-diary-body{font-size:16.5px;line-height:30px;color:var(--text);letter-spacing:.03em}
.frost-wp-body{font-size:17px}
.frost-mood-voice{font-size:15px;line-height:1.75;letter-spacing:.02em}
.frost-mem-hand{font-size:15px;line-height:1.7;color:var(--text)}
.frost-message.dream .frost-msg-line{font-size:15.5px}

/* ===================== 2026-10-03 小窝卡片语言 ===================== */
/* 共用：玻璃壳 / 圆角 16·10·全圆 / 图标章 / 头部句式 / 签名色只做淡淡的底和图标 */
:root{--k-work:201,138,90;--k-garden:111,154,114;--k-book:160,122,92;--k-game:140,127,176;--k-web:107,143,163;--k-xhs:197,106,106;--k-dream:154,139,180}
.xw-card{--c:var(--k-work);position:relative;max-width:88%;margin:6px 0;padding:11px 13px 12px;border-radius:16px;background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 26px rgba(80,62,40,.09);overflow:hidden;font-family:var(--sans);color:var(--ink)}
.xw-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(var(--c),.10),transparent 45%);pointer-events:none}
.xw-hd{position:relative;display:flex;align-items:center;gap:8px;min-height:24px}
.xw-seal{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:rgba(var(--c),.16);color:rgb(var(--c));box-shadow:0 0 0 1px rgba(var(--c),.12) inset}
.xw-seal.sm{width:18px;height:18px}
.xw-ttl{font-weight:500;font-size:13.5px;line-height:1.3;letter-spacing:.02em;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xw-meta{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.xw-well{position:relative;background:rgba(255,255,255,.42);border:1px solid rgba(60,48,36,.07);border-radius:10px}
.xw-hand{font-family:var(--hand);font-size:15.5px;line-height:1.7;color:var(--text);letter-spacing:.02em}
.xw-btn{border:1px solid rgba(var(--c),.4);background:rgba(var(--c),.10);color:rgb(var(--c));border-radius:999px;padding:3px 13px;font:500 12px var(--sans);cursor:pointer;-webkit-tap-highlight-color:transparent}

/* 干活：沿用 v2 时间线，只换成这套语言的头和底 */
.xw-card.xw-work{--c:var(--k-work);max-width:92%}
.xw-work .frost-act2-state{width:24px;height:24px}
.xw-work .frost-act2-title{font-weight:500;font-size:13.5px}

/* 花园：明信片 */
.xw-garden{--c:var(--k-garden);align-self:center}
.xw-post{margin-top:9px;padding:9px 40px 9px 11px}
.xw-post{display:flex;flex-direction:column;gap:5px}
.xw-who{font:400 11px var(--sans);color:var(--muted)}
.xw-post-tt{font:500 13.5px/1.55 var(--serif);color:var(--ink)}
.xw-more{position:relative;margin-top:7px;font-size:11px;color:var(--muted)}
.xw-stamp{position:absolute;right:9px;top:8px;width:24px;height:30px;border:1.5px dashed rgba(var(--c),.38);border-radius:4px;display:grid;place-items:center;color:rgba(var(--c),.6)}
.xw-reply{position:relative;display:flex;gap:7px;align-items:flex-start;margin-top:8px}
.xw-tag{font-size:10.5px;color:rgb(var(--c));border:1px solid rgba(var(--c),.35);border-radius:999px;padding:0 7px;margin-top:4px;white-space:nowrap}

/* 读书：书脊 */
.xw-book{--c:var(--k-book);align-self:center;padding-left:20px}
.xw-book:after{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(rgba(var(--c),.75),rgba(var(--c),.45))}
.xw-book-tt{position:relative;margin-top:7px;font:500 15px var(--serif);color:var(--ink)}
.xw-book-tt small{font:400 11px var(--sans);color:var(--muted);margin-left:6px}
.xw-book-line{position:relative;margin-top:6px}

/* 其余动作（写日记/贴叮嘱/看日记）：同语言的小胶囊 */
.xw-pill{--c:var(--k-book);align-self:center;display:inline-flex;align-items:center;gap:6px;max-width:86%;margin:4px auto;padding:4px 12px 4px 5px;border-radius:999px;background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid rgba(255,255,255,.5);font-size:12px;color:var(--text)}
.xw-pill em{font-style:normal;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xw-pill small{color:var(--muted);font-size:10.5px;margin-left:2px}

/* 游戏：记分牌 */
.xw-game{--c:var(--k-game)}
.xw-score{position:relative;display:flex;align-items:baseline;gap:6px;margin-top:8px}
.xw-score b{font:500 28px/1 var(--serif);color:rgb(var(--c));font-variant-numeric:tabular-nums}
.xw-score span{font-size:12px;color:var(--muted)}
.xw-chips{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}
.xw-chips .xw-well{padding:6px 6px;text-align:center;min-width:0}
.xw-chips small{display:block;font-size:10.5px;color:var(--muted)}
.xw-chips b{display:block;font-weight:500;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xw-game-line{position:relative;margin-top:8px;cursor:pointer}

/* 网页文件：小窗口 */
.xw-web{--c:var(--k-web)}
.xw-win{margin-top:9px;overflow:hidden;cursor:pointer}
.xw-win-bar{display:flex;align-items:center;gap:4px;padding:6px 9px;border-bottom:1px solid rgba(60,48,36,.07)}
.xw-win-bar i{width:6px;height:6px;border-radius:50%;background:rgba(var(--c),.35)}
.xw-win-bar span{margin-left:6px;font:11px var(--mono,ui-monospace,monospace);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xw-win-body{height:64px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(var(--c),.12),rgba(232,180,184,.16));font:15px var(--hand);color:var(--text)}
.xw-win-open{position:relative;display:flex;justify-content:flex-end;margin-top:8px}

/* 小红书：同语言的边、胭脂小点 */
.frost-xhs-card{border:1px solid rgba(255,255,255,.55)!important;border-radius:16px!important;box-shadow:0 10px 26px rgba(80,62,40,.09)!important}
.frost-xhs-card:before{content:"";position:absolute;left:9px;top:9px;width:7px;height:7px;border-radius:50%;background:rgb(var(--k-xhs));z-index:2}
.frost-xhs-cover.empty{background:linear-gradient(160deg,#f3d9d4,#e9c3c9 50%,#d9c9e6)}

/* 思考：不做卡片，一行淡字 */
.xw-think{margin:0 0 4px;max-width:100%}
.xw-think-tg{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;font:400 11.5px var(--sans);color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent}
.xw-think-ch{display:inline-block;transition:transform .2s ease}
.xw-think.open .xw-think-ch{transform:rotate(90deg)}
.xw-think-body{margin:6px 0 4px 5px;padding-left:12px;border-left:1px dotted rgba(150,142,130,.6);font:15px/1.75 var(--hand);color:var(--muted);white-space:pre-wrap}

/* 梦：月光紫，薄雾（她换花背景时无底文字会糊，必须垫一层） */
.frost-message.dream{padding:9px 13px 10px!important;border-radius:20px!important;background:radial-gradient(120% 140% at 0% 0%,rgba(var(--k-dream),.16),rgba(255,255,255,.42) 60%,rgba(255,255,255,.28))!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}
.frost-message.dream .frost-msg-line{color:#7d6f99}
.xw-dream-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans)!important;font-size:11.5px!important;letter-spacing:.12em!important;color:rgb(var(--k-dream))!important}

/* 提示条：统一成小胶囊 */
.frost-notice{border-radius:999px;border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 20px rgba(80,62,40,.08)}

/* 深色 */
.frost-bg-dark .xw-card,.frost-bg-dark .xw-pill{background:rgba(34,31,28,calc(var(--glass-alpha) * 1.9));border-color:rgba(255,255,255,.08);box-shadow:0 10px 26px rgba(0,0,0,.25)}
.frost-bg-dark .xw-well{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.07)}
.frost-bg-dark .xw-win-bar{border-bottom-color:rgba(255,255,255,.07)}
.frost-bg-dark .frost-message.dream{background:radial-gradient(120% 140% at 0% 0%,rgba(var(--k-dream),.22),rgba(30,28,34,.5) 60%,rgba(30,28,34,.38))!important}
.frost-bg-dark .frost-message.dream .frost-msg-line{color:#c9bde3}
.frost-bg-dark .xw-think-body{border-left-color:rgba(255,255,255,.18)}
.xw-pill > span{white-space:nowrap;flex-shrink:0}.xw-pill em{min-width:0}
.frost-bg-dark .xw-seal{background:rgba(var(--c),.34);color:#f4efe8;box-shadow:0 0 0 1px rgba(var(--c),.4) inset}
.frost-bg-dark .xw-tag{color:#e8e2d8;border-color:rgba(var(--c),.6);background:rgba(var(--c),.18)}
.frost-bg-dark .xw-score b,.frost-bg-dark .xw-btn,.frost-bg-dark .xw-dream-tag{filter:brightness(1.55)}
.frost-bg-dark .xw-stamp{border-color:rgba(var(--c),.6);color:rgba(var(--c),.9)}

/* 2026-10-03 .frost-btn-s 之前从没定义过，9 处按钮一直是浏览器默认黑框 → 补成小窝的小胶囊 */
.frost-btn-s{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,255,255,.6);background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);color:var(--ink);border-radius:999px;padding:4px 12px;font:400 12px/1.4 var(--sans);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,background .15s ease;box-shadow:0 2px 8px rgba(80,62,40,.06)}
.frost-btn-s:active{transform:scale(.96)}
.frost-btn-s:disabled{opacity:.5}
.frost-bg-dark .frost-btn-s{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);color:var(--ink)}
.frost-btn-s{white-space:nowrap;flex-shrink:0}

/* 2026-10-03 一次发多张图 */
.frost-compose-preview{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.frost-compose-thumb{position:relative;flex-shrink:0}
.frost-compose-thumb img{width:54px;height:54px;object-fit:cover;border-radius:10px;display:block}
.frost-compose-thumb button{position:absolute;top:-5px;right:-5px;border:0;background:rgba(90,82,72,.8);color:#fff;border-radius:50%;width:19px;height:19px;font-size:12px;line-height:1;cursor:pointer}
.frost-compose-more{flex-shrink:0;width:54px;height:54px;border-radius:10px;border:1.5px dashed rgba(120,104,84,.3);background:var(--glass-2);color:var(--muted);font-size:20px;cursor:pointer}
.frost-msg-imgs{display:grid;gap:4px;margin-bottom:4px;max-width:260px}
.frost-msg-imgs.n2{grid-template-columns:1fr 1fr}.frost-msg-imgs.n3,.frost-msg-imgs.n4{grid-template-columns:1fr 1fr 1fr}
.frost-msg-imgs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px;display:block;cursor:zoom-in}
.frost-compose-preview{padding-top:9px}
.frost-compose-preview>.frost-compose-more{width:54px;height:54px;border-radius:10px;border:1.5px dashed rgba(120,104,84,.3);background:var(--glass-2);color:var(--muted);font-size:20px}

/* 2026-10-03 世界书 */
.frost-wb{display:flex;flex-direction:column;gap:10px}
.frost-wb-intro{font-size:12.5px;line-height:1.7;color:var(--text)}
.frost-wb-actions{display:flex;gap:8px}
.frost-wb-hint{font-size:11px;line-height:1.6;color:var(--muted)}
.frost-wb-input{width:100%;box-sizing:border-box;margin-bottom:8px;border:1px solid rgba(60,48,36,.1);background:rgba(255,255,255,.55);border-radius:10px;padding:8px 10px;font:13px/1.6 var(--sans);color:var(--ink);resize:vertical;position:relative}
.frost-wb-book{max-width:100%}
.frost-wb-book.off{opacity:.6}
.frost-wb-sub{position:relative;margin:6px 0 0 32px;font-size:11.5px;color:var(--muted)}
.frost-wb-btns{position:relative;display:flex;gap:6px;margin:9px 0 0 32px;flex-wrap:wrap}
.frost-wb-entries{position:relative;display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:420px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.frost-wb-entry{padding:8px 10px}
.frost-wb-entry-hd{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:4px}
.frost-wb-entry-hd b{font:500 13px var(--serif);color:var(--ink);margin-right:2px}
.frost-wb-entry-hd small{margin-left:auto;font-size:10.5px;color:var(--muted)}
.frost-wb-tag{font-size:10.5px;padding:0 7px;border-radius:999px;background:rgba(var(--k-book),.12);color:rgb(var(--k-book))}
.frost-wb-tag.on{background:rgba(var(--k-garden),.16);color:rgb(var(--k-garden))}
.frost-wb-entry-body{font-size:12.5px;line-height:1.65;color:var(--text);white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.frost-bg-dark .frost-wb-input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}

/* ===== 10-03 用量重做：一枚小药丸，点开一张小卡 ===== */
.frost-usage{margin-top:4px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.frost-usage-pill{display:inline-flex;align-items:center;gap:7px;padding:1px 8px;border:none;border-radius:999px;background:transparent;color:var(--faint);font:500 10px/1.6 var(--sans);letter-spacing:.3px;font-variant-numeric:tabular-nums;opacity:.72;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .2s,background .2s}
.frost-usage-pill span+span::before{content:"";display:inline-block;width:2px;height:2px;border-radius:50%;background:currentColor;margin:0 6px 2px 0;opacity:.7;vertical-align:middle}
.frost-usage.open .frost-usage-pill,.frost-usage-pill:active{opacity:1;background:var(--glass-1)}
.frost-usage-dot{width:5px;height:5px;border-radius:50%;display:inline-block;background:rgb(var(--k-garden))}
.frost-usage-dot.warn{background:rgb(var(--k-work))}
.frost-usage-dot.bad{background:rgb(var(--k-xhs))}
.frost-usage-card{min-width:180px;max-width:260px;padding:8px 12px;border-radius:12px;background:var(--glass-2,rgba(255,255,255,.55));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.35);box-shadow:0 4px 18px rgba(60,40,20,.08);animation:frostUsageIn .22s ease-out}
.frost-usage-card div{display:flex;justify-content:space-between;gap:14px;font-size:11px;line-height:1.85}
.frost-usage-card span{color:var(--faint)}
.frost-usage-card b{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}
@keyframes frostUsageIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.frost-bg-dark .frost-usage-pill{color:rgba(255,255,255,.42)}
.frost-bg-dark .frost-usage-card{background:rgba(30,28,26,.82);border-color:rgba(255,255,255,.08)}

/* 10-03 气泡底部并成一行：时间 · 用量 ……… ⟳ ⧉（原来三行叠着，太碎） */
.frost-msg-foot{display:flex;align-items:center;flex-wrap:wrap;gap:2px 8px;margin-top:3px;min-height:16px}
.frost-msg-foot:empty{display:none}
.frost-message.mine .frost-msg-foot,.frost-message:not(.theirs) .frost-msg-foot{justify-content:flex-end}
.frost-msg-foot small{align-self:center!important;font-size:9.5px;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.frost-msg-foot .frost-usage{display:contents}
.frost-msg-foot .frost-usage-pill{padding:0 6px;margin-left:-4px}
.frost-msg-foot .frost-usage-card{flex-basis:100%;order:9;margin-top:4px}
.frost-msg-foot .frost-msg-actions{margin:0 0 0 auto;gap:4px}
.frost-msg-foot .frost-mini-icon{opacity:.55;transition:opacity .2s}
.frost-msg-foot .frost-mini-icon:active{opacity:1}
.frost-msg-foot .frost-mini-icon{display:inline-flex;padding:3px}
.frost-line-chip{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block!important;line-height:1.7}
.frost-chat-compose textarea{scrollbar-width:none}.frost-chat-compose textarea::-webkit-scrollbar{display:none}
/* 10-03 功能页：每格一个品牌色，淡淡染在玻璃上 */
.frost-ficon .frost-ftile{background:linear-gradient(160deg,rgba(var(--c),.16),rgba(var(--c),.05)),var(--card-bg);border-color:rgba(var(--c),.22)}
.frost-ficon .frost-ftile svg{stroke:rgb(var(--c))}
.frost-ficon:active .frost-ftile{transform:scale(.94)}
.frost-ftile{transition:transform .18s cubic-bezier(.3,1.4,.5,1)}
.frost-ficon>span:last-child{letter-spacing:.5px;color:var(--text);opacity:.82}
.frost-bg-dark .frost-ficon .frost-ftile{background:linear-gradient(160deg,rgba(var(--c),.22),rgba(var(--c),.06)),rgba(32,30,28,.5)}
.frost-bg-dark .frost-ficon .frost-ftile svg{stroke:rgba(var(--c),1);filter:brightness(1.35)}
/* 10-03 日历：今天不再是一块深棕方块，换成淡玫瑰底 + 加粗数字；选中=细圈 */
.frost-days button{border-radius:12px;transition:background .2s}
.frost-days button.today,.frost-bg-dark .frost-days button.today{background:rgba(var(--k-xhs),.16);color:rgb(var(--k-xhs));font-weight:600}
.frost-days button.today.has-event i{background:rgb(var(--k-xhs))}
.frost-days button.sel{outline:1.5px solid rgba(var(--k-book),.55);outline-offset:-3px}
.frost-days button.today.sel{outline-color:rgba(var(--k-xhs),.6)}
.frost-day-title{padding:0 4px;margin-top:6px}
/* 10-03 设置页：每行一枚小图标章；版本号退成页脚小字 */
.frost-set-ic{flex:none;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:rgb(var(--c));background:rgba(var(--c),.13);border:.5px solid rgba(var(--c),.2)}
.frost-setrow .frost-st span{display:block;margin-top:2px}
.frost-set-foot{text-align:center;font-size:10.5px;letter-spacing:1.5px;color:var(--faint);margin:14px 0 6px;opacity:.8}
.frost-bg-dark .frost-set-ic{color:rgba(var(--c),1);filter:brightness(1.35);background:rgba(var(--c),.18)}
/* 10-03 心情小泡：手写体在这么小的字号会糊，换成正文字；数字单独淡一档 */
.frost-mood-bubble{font-family:var(--sans);font-size:11px;letter-spacing:.5px;padding:4px 11px;display:inline-flex;align-items:baseline;gap:5px}
.frost-mood-bubble em{font-style:normal;font-size:10px;opacity:.6;font-variant-numeric:tabular-nums}
.frost-mood-bubble.peak{background:rgba(var(--k-xhs),.85);box-shadow:0 2px 8px rgba(var(--k-xhs),.3)}
.frost-mood-bubble.peak em{opacity:.85}
.frost-mood-curve{color:var(--faint)}
.frost-home-person .frost-chip{white-space:nowrap;max-width:100%;font-size:11.5px}.frost-home-person .frost-chip small{opacity:.5;margin-left:1px}

/* 10-03 待办：你的 + 他的 放在一起；他的（念头池长出来的）要你批准 */
.frost-todo-group{display:flex;align-items:center;justify-content:space-between;margin:14px 2px 8px;font-size:11px;letter-spacing:2px;color:var(--faint);font-weight:600}
.frost-todo-group:first-child{margin-top:4px}
.frost-his-empty{font-size:12px;color:var(--faint);text-align:center;margin:6px 0 10px}
.frost-his-think{border:0;background:rgba(var(--k-garden),.14);color:rgb(var(--k-garden));font-size:11px;letter-spacing:.5px;padding:4px 11px;border-radius:999px;cursor:pointer;font-weight:500}
.frost-his-item{padding:12px 14px;border-radius:var(--r-md,14px);margin-bottom:9px;background:var(--card-bg);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:var(--card-bd);box-shadow:inset 3px 0 0 rgba(var(--k-garden),.55)}
.frost-his-item.thinking{box-shadow:inset 3px 0 0 rgba(var(--k-work),.7)}
.frost-his-item.done{opacity:.55}
.frost-his-main{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.frost-his-dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:7px;background:rgb(var(--k-garden))}
.frost-his-dot.thinking{background:rgb(var(--k-work))}
.frost-his-txt{flex:1;min-width:0}
.frost-his-txt b{display:block;font-size:13.5px;font-weight:500;line-height:1.55;color:var(--text)}
.frost-his-txt span{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.frost-his-chev{flex:none;font-size:11px;color:var(--faint);margin-top:3px}
.frost-his-more{margin:8px 0 0 18px;font-size:12px;line-height:1.65;color:var(--muted)}
.frost-his-more p{margin:0 0 4px}
.frost-his-btns{display:flex;gap:8px;margin:10px 0 0 18px}
.frost-his-ok{border:0;border-radius:999px;padding:5px 18px;font-size:12px;font-weight:600;letter-spacing:1px;color:#fff;background:rgb(var(--k-garden));box-shadow:0 2px 8px rgba(var(--k-garden),.3);cursor:pointer}
.frost-his-no{border:0;border-radius:999px;padding:5px 12px;font-size:12px;color:var(--faint);background:transparent;cursor:pointer}
.frost-his .frost-wish-hint{margin-left:18px}
.frost-bg-dark .frost-his-txt b{color:var(--text)}
.frost-his-txt b{font-weight:400;font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.frost-his-txt.open b{display:block;-webkit-line-clamp:unset}
.frost-his-item{box-shadow:none;border-left:0;position:relative;overflow:hidden}
.frost-his-item::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:rgb(var(--k-garden))}
.frost-his-item.thinking::before{background:rgb(var(--k-work))}
.frost-seg{border:0;border-radius:999px;padding:5px 16px;font-size:12.5px;letter-spacing:1px;white-space:nowrap;cursor:pointer;background:var(--glass-1);color:var(--muted)}
.frost-seg.on{background:rgba(var(--k-book),.16);color:rgb(var(--k-book));font-weight:600}
.frost-fab{background:rgb(var(--k-xhs))!important;width:46px!important;height:46px!important;font-size:24px!important;box-shadow:0 4px 14px rgba(var(--k-xhs),.35)!important}
/* 10-03 他的待办 v2：小窝卡片语言（图标章 + 一句头 + 他的手写字） */
.frost-his-card{max-width:100%;margin:0 0 10px;padding:12px 14px 10px}
.frost-his-want{margin:8px 0 2px;font-family:var(--hand);font-size:17px;line-height:1.6;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.frost-his-want.open{display:block}
.frost-his-card .frost-his-more{margin:6px 0 0;font-size:12px;line-height:1.7;color:var(--muted)}
.frost-his-saw{padding:8px 10px;margin-top:6px;font-size:11.5px;line-height:1.65;color:var(--muted)}
.frost-his-srcs{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.frost-his-foot{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(var(--c),.22)}
.frost-his-link{border:0;background:none;padding:3px 4px;font-size:11.5px;color:var(--faint);cursor:pointer}
.frost-his-approve{background:rgb(var(--c));color:#fff;border-color:transparent;padding:4px 16px;letter-spacing:1px;box-shadow:0 2px 8px rgba(var(--c),.3)}
.frost-his-go{font-size:11px;color:rgb(var(--c))}
.frost-his-card.done{opacity:.6}
.frost-bg-dark .frost-his-want{color:var(--text)}
.frost-act2-note{font-family:var(--hand);font-size:14px;color:var(--text);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* 10-03 干活卡片收起时：被挤窄了会把「做完了」折成两行。现在头部一行不折：左边状态，右边步数用时 */
.frost-activity-card.v2{min-width:min(268px,100%);box-sizing:border-box}
.frost-act2-title,.frost-act2-sub{white-space:nowrap}
.frost-act2-sub{margin-left:auto}
.frost-act2-head .frost-act2-chev{margin-left:2px}
.frost-act2-head .frost-act2-stop{margin-left:6px}
.frost-act2-summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frost-activity-card.v2.done:not(.partial) .frost-act2-summary{margin-top:3px}
/* 10-03 他上网查了什么：气泡顶上一行淡字，青灰（网页那色） */
.frost-websearch{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0 0 5px;font-size:10.5px;color:rgb(var(--k-web));opacity:.85}
.frost-websearch span{letter-spacing:.5px}
.frost-websearch b{font-weight:500;padding:0 7px;border-radius:999px;background:rgba(var(--k-web),.12);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 10-03 MCP 插座卡 */
.frost-sockets .xw-card{max-width:100%;margin:0 0 10px}
.frost-socket-why{font-size:12px;line-height:1.65;color:var(--muted);margin-top:6px}
.frost-socket-url{font-size:10.5px;color:var(--faint);margin-top:4px;word-break:break-all}
.frost-socket-tools{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.frost-socket-tools span{font-size:10px;padding:1px 7px;border-radius:999px;background:rgba(var(--c),.1);color:rgb(var(--c))}
.frost-socket .frost-wb-input{margin-top:8px}
.frost-socket-chev{margin-left:6px;font-size:11px;color:var(--faint)}
.frost-socket-tools span.warn{background:rgba(var(--k-work),.14);color:rgb(var(--k-work))}

/* ===== 10-03 心潮 · 他的心 v3（首页心情卡 + 心情页）=====
   原则：用词不用数；一个大字、一行底色、一句手写、一条真实的曲线、几处在动的劲。克制、留白、细线。 */
.frost-mood-card.v3,.frost-moodpage.v3{--mc:128,164,140}
.frost-mood-card.v3.tone-pink,.frost-moodpage.v3.tone-pink{--mc:206,140,146}
.frost-mood-card.v3.tone-mint,.frost-moodpage.v3.tone-mint{--mc:120,160,136}
.frost-mood-card.v3.tone-lav,.frost-moodpage.v3.tone-lav{--mc:146,134,186}
.frost-mood-card.v3.tone-blue,.frost-moodpage.v3.tone-blue{--mc:112,146,172}

.frost-mood-card.v3{position:relative;padding:20px 20px 14px;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:transform .25s cubic-bezier(.3,1.3,.5,1)}
.frost-mood-card.v3:active{transform:scale(.985)}
.frost-mood-card.v3::before{content:"";position:absolute;right:-60px;top:-70px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(var(--mc),.16),transparent 70%);pointer-events:none}
.fm3-top{display:flex;align-items:center;gap:16px}
.frost-mood-card.v3 .frost-mood-orb{width:46px;height:46px}
.fm3-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.fm3-eyebrow{font-size:10px;letter-spacing:4px;color:var(--faint);font-weight:500}
.fm3-word{font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:1px;color:var(--text);line-height:1.3}
.fm3-nuance{font-size:11.5px;letter-spacing:.5px;color:rgb(var(--mc));opacity:.95}
.fm3-voice{margin:14px 2px 6px;font-family:var(--hand);font-size:16px;line-height:1.7;color:var(--text);opacity:.82}
.frost-mood-curve.v3{display:block;width:100%;height:48px;margin:4px 0 2px;color:var(--faint);overflow:visible}
.frost-mood-curve.v3.tall{height:84px}
.frost-mood-now-halo{animation:fmHalo 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes fmHalo{0%,100%{opacity:.18;transform:scale(1)}50%{opacity:.32;transform:scale(1.35)}}
.fm3-drives{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px;padding-top:10px;border-top:.5px solid rgba(var(--mc),.22)}
.fm3-drives span{display:inline-flex;align-items:baseline;gap:5px;font-size:12px;color:var(--text)}
.fm3-drives b{font-weight:500;letter-spacing:.5px}
.lv{font-style:normal;font-size:10px;letter-spacing:1px;padding:0 6px;border-radius:999px;line-height:1.7;color:var(--faint);background:rgba(150,140,130,.1)}
.lv-涨,.lv-涌{color:rgb(var(--mc));background:rgba(var(--mc),.14);font-weight:600}
.lv-落{color:var(--faint);background:transparent;border:.5px solid rgba(150,140,130,.3)}
.fm3-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.fm3-note{font-size:11.5px;color:var(--muted);letter-spacing:.3px;line-height:1.5}
.fm3-more{flex:none;font-size:11px;letter-spacing:1px;color:var(--faint)}

/* 心情页 */
.frost-moodpage.v3{padding-bottom:40px}
.mp3-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 18px 22px}
.frost-mood-orb.big{width:78px;height:78px;margin-bottom:14px;animation-duration:4s}
.mp3-word{font-family:var(--serif);font-weight:500;font-size:28px;letter-spacing:2px;color:var(--text)}
.mp3-nuance{margin-top:4px;font-size:12px;letter-spacing:.8px;color:rgb(var(--mc))}
.mp3-voice{margin:16px 6px 4px;font-family:var(--hand);font-size:18px;line-height:1.75;color:var(--text);opacity:.85}
.mp3-note{margin-top:8px;font-size:11.5px;color:var(--muted);padding:3px 12px;border-radius:999px;background:rgba(var(--mc),.1)}
.mp3-sec{margin:0 0 14px;padding:16px 16px 14px;border-radius:18px;background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:.5px solid rgba(255,255,255,.4)}
.mp3-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.mp3-title span{font-size:11px;letter-spacing:4px;color:var(--faint);font-weight:600}
.mp3-title em{font-style:normal;font-size:11px;color:var(--muted);letter-spacing:.5px;text-align:right}
.mp3-axis{display:flex;justify-content:space-between;font-size:9.5px;color:var(--faint);letter-spacing:.5px;margin-top:2px;font-variant-numeric:tabular-nums}
.mp3-drives{display:flex;flex-direction:column;gap:9px}
.mp3-drive{display:grid;grid-template-columns:64px 1fr 30px;align-items:center;gap:10px}
.mp3-drive span{font-size:12px;color:var(--text);letter-spacing:.5px}
.mp3-drive i{display:block;height:4px;border-radius:4px;background:rgba(150,140,130,.12);overflow:hidden}
.mp3-drive b{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,rgba(var(--mc),.45),rgba(var(--mc),.95));transition:width .8s cubic-bezier(.3,1,.5,1)}
.mp3-drive em{justify-self:end}
.frost-mp-bars.v3{height:110px;gap:7px}
.frost-mp-bars.v3 .frost-mp-bar i{width:7px;border-radius:7px;opacity:.85}
.frost-mp-bars.v3 .frost-mp-bar.on i{opacity:1;transform:scaleX(1.6)}
.frost-mp-bars.v3 i.tone-pink{background:rgb(206,140,146)}
.frost-mp-bars.v3 i.tone-mint{background:rgb(120,160,136)}
.frost-mp-bars.v3 i.tone-lav{background:rgb(146,134,186)}
.frost-mp-bars.v3 i.tone-blue{background:rgb(112,146,172)}
.mp3-pick{margin-top:12px;font-size:12px;color:var(--text);letter-spacing:.3px;padding:9px 12px;border-radius:12px;background:rgba(var(--mc),.1)}
.frost-bg-dark .mp3-sec{background:rgba(30,28,26,.5);border-color:rgba(255,255,255,.06)}
.frost-bg-dark .fm3-voice,.frost-bg-dark .mp3-voice{color:var(--text)}
.frost-mood-curve-empty{height:84px;display:flex;align-items:center;justify-content:center;font-size:11.5px;letter-spacing:.5px;color:var(--faint);border-bottom:.5px dashed rgba(150,140,130,.3)}

/* 10-03 首页叮嘱：像他随手留的纸条，不像待办清单 —— 去掉左侧色条、换成顶端一小截纸胶带；做完的不划粗线，淡下去 */
.frost-memo{border-radius:3px 3px 10px 10px;padding:16px 16px 12px;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 8px 20px rgba(110,96,80,.07)}
.frost-memo::before{left:50%;top:-6px;bottom:auto;width:46px;height:12px;border-radius:1px;transform:translateX(-50%) rotate(-2deg);opacity:.55}
.frost-memo:nth-of-type(even)::before{transform:translateX(-50%) rotate(2.5deg)}
.frost-memo-text{font-size:16.5px;line-height:1.6;color:var(--text)}
.frost-memo-from{margin-top:8px;font-size:10.5px;letter-spacing:.5px}
.frost-memo.done{opacity:.42;box-shadow:none}
.frost-memo.done .frost-memo-text{text-decoration:none;color:var(--muted)}
.frost-memo.done .frost-memo-from::after{content:" · 已收下";color:var(--faint)}
.frost-memo-add{border:0;background:transparent;color:var(--faint);letter-spacing:1px;padding:8px}
.frost-memos .frost-section-title{font-size:15px;letter-spacing:1px}
.frost-memos .frost-section-title .frost-chip{font-family:var(--sans);font-size:10.5px;letter-spacing:1px;color:var(--faint)}
/* 10-03 连发成组：头像/时间只留最后一条，组内收紧，相邻角收小 */
.frost-msg-row.g-cont{margin-bottom:-5px}
.frost-msg-row.g-cont > .frost-clay-ava{visibility:hidden}
.frost-msg-row.g-cont .frost-msg-foot small{display:none}
.frost-msg-row.g-cont .frost-msg-foot:not(:has(.frost-usage)):not(:has(.frost-msg-actions)){display:none}
.frost-msg-row.theirs.g-cont .frost-message{border-bottom-left-radius:8px}
.frost-msg-row.theirs.g-after .frost-message{border-top-left-radius:8px}
.frost-msg-row.mine.g-cont .frost-message{border-bottom-right-radius:8px}
.frost-msg-row.mine.g-after .frost-message{border-top-right-radius:8px}
/* 10-04 聊天流里的卡片被 flex 压扁（读书卡只剩 25px 高、像被切掉）：列表里的任何东西都不许被压缩 */
.frost-chat-list > *{flex-shrink:0}
/* 10-04 开启通知提示条 */
.frost-push-ask{display:flex;align-items:center;gap:10px;margin:2px 4px 6px;padding:8px 8px 8px 14px;border-radius:999px;background:var(--glass-2);backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:.5px solid rgba(255,255,255,.45);font-size:12px;color:var(--muted)}
.frost-push-ask span{flex:1;letter-spacing:.5px}
.frost-push-ask button{border:0;border-radius:999px;padding:5px 14px;font-size:12px;background:rgb(206,140,146);color:#fff;letter-spacing:1px;cursor:pointer}
.frost-push-ask button.x{background:transparent;color:var(--faint);padding:4px 8px;font-size:14px}

/* 10-05 心情页「这些天我在想的」：一天一句，像本子 */
.mp3-days{display:flex;flex-direction:column;gap:12px}
.mp3-day{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:baseline}
.mp3-day time{font-size:11px;color:var(--faint);letter-spacing:.04em}
.mp3-day p{margin:0;font-family:var(--hand);font-size:16px;line-height:1.6;color:var(--text)}

/* 10-06 长按菜单：一排小图标 + 赞 */
.frost-msg-menu.icons{flex-wrap:nowrap;gap:2px;padding:3px 4px;border-radius:999px;width:max-content}
.frost-msg-menu.icons button{width:32px;height:30px;padding:0;display:grid;place-items:center;border-radius:999px;color:var(--muted)}
.frost-msg-menu.icons button.on{color:rgb(197,106,106)}
.frost-msg-menu.icons button.danger{color:var(--faint)}
.frost-msg-liked{display:inline-grid;place-items:center;margin-right:4px;color:rgb(197,106,106);opacity:.85;vertical-align:-1px}

/* 10-09 聊天页：她说「再美化一下，别冗余」——底下那排导航在聊天里收起来（左上返回就够），输入栏贴底；一个「＋」管图和文件 */
.frost-view-chat .frost-nav{display:none}
.frost-view-chat .frost-chat-compose{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;gap:6px}
.frost-cattach svg{stroke-width:1.9}
.frost-file-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:7px 10px 7px 7px;border-radius:12px;background:var(--card-bg);border:var(--card-bd);font-size:13px;color:var(--text)}
.frost-message .frost-file-chip{margin-bottom:4px;background:rgba(255,255,255,.35)}
.frost-file-chip i{flex:0 0 auto;font-style:normal;font-size:9.5px;letter-spacing:.5px;font-weight:600;color:#fff;background:var(--accent,#b0872f);opacity:.8;border-radius:6px;padding:5px 5px;min-width:30px;text-align:center}
.frost-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.frost-file-chip small{flex:0 0 auto;color:var(--faint);font-size:11px}
.frost-file-chip button{flex:0 0 auto;border:0;background:none;color:var(--faint);font-size:16px;line-height:1;padding:0 2px;cursor:pointer}

/* 10-11 他给她做的一页（信/检讨/小玩意）：卡片上直接看到那一页的上半截和标题，点开整屏读 */
.frost-act2-html{margin:8px 0 2px}
.xw-page{width:270px;max-width:74vw;border-radius:16px;overflow:hidden;cursor:pointer;background:var(--glass-2,rgba(255,255,255,.62));backdrop-filter:var(--card-blur);-webkit-backdrop-filter:var(--card-blur);border:1px solid rgba(60,48,36,.08);box-shadow:0 6px 18px rgba(80,60,40,.10);transition:transform .18s ease;-webkit-tap-highlight-color:transparent}
.xw-page:active{transform:scale(.98)}
.xw-page-peek{position:relative;height:168px;overflow:hidden;background:#fbf8f3}
.xw-page-peek:after{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(transparent,var(--glass-2,rgba(255,255,255,.9)))}
.xw-page-thumb{position:absolute;top:0;left:0;width:375px;height:234px;border:0;transform:scale(.72);transform-origin:0 0;pointer-events:none}
.xw-page-foot{display:flex;align-items:center;gap:10px;padding:9px 12px 11px}
.xw-page-title{flex:1;min-width:0;font-size:14.5px;line-height:1.4;color:var(--text);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.xw-page-go{flex:none;font-size:12px;color:var(--muted);padding:3px 10px;border-radius:20px;background:rgba(128,128,128,.10)}
.frost-bg-dark .xw-page{background:rgba(40,36,33,.72);border-color:rgba(255,255,255,.07)}
.frost-bg-dark .xw-page-peek:after{background:linear-gradient(transparent,rgba(40,36,33,.9))}

/* 10-11 她：抽屉顶上太硬、没边框——圆角+细边+阴影，里面那页套一层圆角框；卡片压扁 */
.frost-html-drawer{border-radius:22px 22px 0 0;border:1px solid rgba(255,255,255,.55);border-bottom:0;box-shadow:0 -10px 34px rgba(60,40,25,.16);padding:0 10px}
.frost-html-drawer-bar{padding:9px 6px 8px}
.frost-html-drawer-close{width:26px;height:26px;top:6px;right:4px;font-size:12px;background:rgba(128,128,128,.10)}
.frost-html-drawer-frame{border-radius:16px 16px 0 0;border:1px solid rgba(60,48,36,.10);border-bottom:0;box-shadow:0 1px 6px rgba(60,40,25,.06);overflow:hidden}
.frost-bg-dark .frost-html-drawer{border-color:rgba(255,255,255,.08)}
.frost-bg-dark .frost-html-drawer-frame{border-color:rgba(255,255,255,.08)}
.xw-page{width:290px;max-width:78vw}
.xw-page-peek{height:96px}
.xw-page-peek:after{height:34px}
.xw-page-thumb{height:125px;transform:scale(.7733)}
.xw-page-foot{padding:8px 12px 9px}
.xw-page-title{-webkit-line-clamp:1;font-size:14px}
