/* ============================================================
   存钱仓鼠 · 样式 v2
   暖奶油底 + 圆润卡片 + 一点点糖果感
   ============================================================ */

:root{
  --cream:#FFF8EE;
  --cream-2:#FFF1DE;
  --card:#FFFFFF;
  --ink:#4E3A2B;
  --ink-2:#8A7361;
  --ink-3:#B7A492;
  --line:#F2E5D4;

  --peach:#FF9F6B;
  --peach-d:#EE7F46;
  --peach-soft:#FFF1E6;
  --gold:#FFC94D;
  --gold-d:#CE8E22;
  --gold-soft:#FFF7DC;
  --mint:#7FD4B6;
  --mint-d:#3B9F82;
  --mint-soft:#EAF8F2;
  --rose:#FF9DB3;
  --rose-soft:#FFF0F4;

  --r-sm:16px;
  --r:22px;
  --r-lg:26px;
  --r-xl:34px;

  --sh-s:0 1px 2px rgba(190,155,110,.06), 0 6px 16px -10px rgba(176,136,92,.42);
  --sh:0 1px 2px rgba(190,155,110,.05), 0 14px 30px -18px rgba(176,136,92,.55);
  --sh-brand:0 12px 22px -10px rgba(238,127,70,.72), inset 0 1px 0 rgba(255,255,255,.42);
  --grad:linear-gradient(180deg,#FFBA92 0%,#FF9257 100%);
  --ease:cubic-bezier(.22,.9,.28,1);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 8% -4%, rgba(255,201,77,.26), transparent 46%),
    radial-gradient(circle at 96% 4%, rgba(255,179,199,.22), transparent 42%),
    radial-gradient(circle at 50% 104%, rgba(143,217,192,.22), transparent 52%);
}
::selection{background:rgba(255,201,77,.42);color:var(--ink);}
.hidden{display:none !important;}

:where(button,a,input):focus-visible{
  outline:3px solid rgba(255,159,107,.42);
  outline-offset:2px;
  border-radius:14px;
}

/* ---------------- 登录 ---------------- */
.screen{position:relative;z-index:1;}
#loginView{
  min-height:100dvh;display:flex;align-items:center;justify-content:center;
  padding:32px 24px calc(32px + env(safe-area-inset-bottom));
}
.login-wrap{width:100%;max-width:330px;text-align:center;position:relative;}
.login-wrap::before{
  content:"";position:absolute;left:50%;top:10px;width:250px;height:250px;transform:translateX(-50%);
  border-radius:50%;background:radial-gradient(circle,rgba(255,201,77,.28),rgba(255,201,77,0) 68%);
  z-index:-1;
}
.login-hamster{
  width:174px;height:174px;margin:0 auto 6px;
  filter:drop-shadow(0 14px 20px rgba(196,156,108,.26));
  animation:floaty 4.4s ease-in-out infinite;
}
.login-hamster svg{width:100%;height:100%;display:block;}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.login-title{margin:0;font-size:25px;font-weight:800;letter-spacing:3px;}
.login-sub{margin:8px 0 22px;font-size:13px;color:var(--ink-3);letter-spacing:.5px;}
.login-form{
  display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:28px;
  background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.95);
  box-shadow:var(--sh);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.login-form input{
  width:100%;padding:15px 18px;border-radius:99px;border:1.5px solid #F6EAD9;
  background:#FFFDF9;font-size:16px;color:var(--ink);outline:none;font-family:inherit;
  text-align:center;letter-spacing:2px;transition:border-color .2s,box-shadow .2s,background .2s;
}
.login-form input::placeholder{letter-spacing:.5px;color:#C9B8A6;}
.login-form input:focus{border-color:var(--peach);background:#fff;box-shadow:0 0 0 4px rgba(255,159,107,.14);}
.login-err{min-height:20px;margin:12px 0 0;font-size:13px;color:#E2705A;}

/* ---------------- 按钮 ---------------- */
.btn-primary{
  width:100%;padding:15px;border:none;border-radius:99px;cursor:pointer;
  background:var(--grad);color:#fff;font-size:15.5px;font-weight:700;font-family:inherit;
  letter-spacing:1.5px;box-shadow:var(--sh-brand);
  transition:transform .14s var(--ease),box-shadow .2s;
}
.btn-primary:active{transform:translateY(1px) scale(.985);box-shadow:0 6px 14px -10px rgba(238,127,70,.9);}
.btn-text{
  width:100%;padding:12px;margin-top:4px;border:none;background:transparent;color:var(--ink-3);
  font-size:13.5px;font-family:inherit;cursor:pointer;letter-spacing:.5px;
}
.btn-text:active{color:var(--peach-d);}
.btn-ghost{
  padding:10px 18px;border-radius:99px;border:1.5px solid var(--line);background:#fff;
  color:var(--ink-2);font-size:13px;font-family:inherit;cursor:pointer;text-decoration:none;
  display:inline-block;font-weight:600;transition:border-color .2s,color .2s,transform .14s;
}
.btn-ghost:active{border-color:var(--peach);color:var(--peach-d);transform:scale(.97);}
.btn-danger{
  width:100%;padding:14px;border:none;border-radius:99px;background:#FFF1EC;color:#D25A3E;
  font-size:14.5px;font-family:inherit;font-weight:700;cursor:pointer;letter-spacing:.5px;
  transition:transform .14s;
}
.btn-danger:active{transform:scale(.98);}
.btn-del-month{
  width:100%;padding:13px;margin-top:10px;border:1.5px solid #FFD8CA;border-radius:99px;
  background:#FFF9F6;color:#D2553A;font-size:14px;font-family:inherit;font-weight:700;
  cursor:pointer;letter-spacing:.5px;transition:background .18s,transform .14s;
}
.btn-del-month:active{background:#FFEDE4;transform:scale(.98);}
.btn-secondary{
  width:100%;padding:14px;border:1.5px solid #FFD9C3;border-radius:99px;background:#fff;
  color:var(--peach-d);font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer;
  letter-spacing:1px;transition:background .18s,transform .14s;
}
.btn-secondary:active{background:var(--peach-soft);transform:scale(.99);}

/* ---------------- 布局 ---------------- */
#mainView{
  max-width:560px;margin:0 auto;
  padding:calc(env(safe-area-inset-top) + 6px) 16px calc(100px + env(safe-area-inset-bottom));
}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 4px 14px;}
.page-head h2{margin:0;font-size:22px;font-weight:800;letter-spacing:1px;}
.footnote{text-align:center;font-size:11.5px;color:var(--ink-3);margin:26px 0 6px;letter-spacing:.5px;}
.hint{font-size:11.5px;color:var(--ink-3);margin:12px 2px 0;line-height:1.7;}
.hint.tight{font-size:11px;margin:0 0 14px 6px;line-height:1.6;}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;margin-top:10px;padding:18px 18px 20px;
  background:linear-gradient(168deg,#FFFEFA 0%,#FFF7E8 56%,#FFEFD8 100%);
  border-radius:var(--r-xl);border:1px solid #FFF0DA;
  box-shadow:var(--sh);text-align:center;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;left:50%;top:-90px;width:320px;height:280px;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,206,120,.38),transparent 66%);
}
.hero::after{
  content:"";position:absolute;left:-50px;bottom:-70px;width:170px;height:170px;border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(255,157,179,.20),transparent 70%);
}
.hero-label{
  position:relative;z-index:1;display:inline-block;font-size:11.5px;letter-spacing:3px;
  color:var(--ink-3);padding:4px 12px;border-radius:99px;background:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.9);
}
.hero-jar{position:relative;z-index:1;width:230px;height:216px;margin:2px auto 0;}
.hero-jar svg{width:100%;height:100%;display:block;}
.jar-hamster{animation:bob 3.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-3.2px);}}
.hero-num{position:relative;z-index:1;margin-top:-8px;}
.hero-wealth{
  font-size:38px;font-weight:800;letter-spacing:-.8px;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1.1;
}
.hero-wealth i{font-style:normal;font-size:.56em;font-weight:700;color:var(--ink-3);margin-right:3px;vertical-align:.1em;}
.hero-goal{font-size:12px;color:var(--ink-3);margin-top:6px;letter-spacing:.4px;}
.hero-foot{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:16px;}
.hero-bar{
  flex:1;position:relative;height:12px;border-radius:99px;background:#F5E5D0;overflow:hidden;
  box-shadow:inset 0 2px 4px rgba(170,135,95,.16);
}
.hero-bar i{
  display:block;height:100%;width:0;border-radius:99px;position:relative;
  background:linear-gradient(90deg,#FFE49C,#FFC94D 52%,#FFA46F);
  box-shadow:0 0 12px rgba(255,190,80,.72);
  transition:width .9s var(--ease);
}
.hero-bar i::after{
  content:"";position:absolute;inset:0 0 50% 0;border-radius:99px;
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,0));
}
.hero-pct{
  font-size:12px;font-weight:800;color:var(--gold-d);font-variant-numeric:tabular-nums;
  min-width:42px;text-align:right;letter-spacing:.5px;
}

/* ---------------- 更新财富按钮 ---------------- */
.fab-update{
  display:block;width:100%;margin:12px 0 0;padding:15px;border:none;border-radius:99px;
  background:var(--grad);color:#fff;font-size:15px;font-weight:700;
  font-family:inherit;letter-spacing:1.5px;cursor:pointer;
  box-shadow:var(--sh-brand);
  transition:transform .14s var(--ease),box-shadow .2s;
}
.fab-update:active{transform:translateY(1px) scale(.99);box-shadow:0 6px 14px -10px rgba(238,127,70,.9);}

/* ---------------- 三张小卡 ---------------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px;}
.card,.card-s{
  background:var(--card);border-radius:var(--r);border:1px solid #FBF1E3;box-shadow:var(--sh-s);
}
.card{padding:16px 16px 14px;margin-top:12px;}
.card-s{padding:14px 8px;text-align:center;}

.cell{border-radius:20px;padding:12px 6px 13px;text-align:center;border:1px solid transparent;}
.cell-in{background:var(--gold-soft);border-color:#FFF0C8;}
.cell-out{background:var(--rose-soft);border-color:#FFE4EB;}
.cell-save{background:var(--mint-soft);border-color:#DCF2E9;}
.cell-icon{font-size:17px;line-height:1;display:block;filter:saturate(1.05);}
.cell-num{
  font-size:15px;font-weight:800;margin-top:6px;letter-spacing:-.3px;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.cell-label{font-size:10.5px;color:var(--ink-3);margin-top:2px;letter-spacing:.6px;}

/* ---------------- 卡片 ---------------- */
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.card-title{font-size:14px;font-weight:800;letter-spacing:.5px;color:var(--ink);}

/* ---------------- 分段 ---------------- */
.seg{display:inline-flex;background:#F8EEDF;border-radius:99px;padding:3px;gap:2px;}
.seg button{
  border:none;background:transparent;padding:5px 11px;border-radius:99px;
  font-size:12px;font-family:inherit;color:var(--ink-3);cursor:pointer;
  transition:all .2s var(--ease);
}
.seg button.on{background:#fff;color:var(--peach-d);font-weight:800;box-shadow:0 2px 6px rgba(190,155,110,.18);}
.seg.big{display:flex;margin:2px 0 16px;background:#F8EEDF;}
.seg.big button{flex:1;padding:10px;font-size:13.5px;}

/* ---------------- 图表 ---------------- */
.chart{width:100%;}
.chart-viewport{overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;}
.chart.grabbing .chart-viewport{cursor:grabbing;}
.chart-track{display:flex;transition:transform .34s var(--ease);will-change:transform;}
.chart-slide{flex:0 0 100%;min-width:0;}
.chart-cap{display:flex;align-items:baseline;justify-content:space-between;padding:0 6px 2px;}
.chart-cap b{font-size:12.5px;font-weight:800;color:var(--ink-2);letter-spacing:.5px;}
.chart-cap span{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.chart svg{width:100%;height:auto;display:block;}
.chart-dots{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:8px;}
.chart-dots i{
  width:6px;height:6px;border-radius:99px;background:#E8D8C4;cursor:pointer;
  transition:width .26s var(--ease),background .26s;
}
.chart-dots i.on{width:20px;background:var(--peach);}
.chart .empty{text-align:center;color:var(--ink-3);font-size:13px;padding:40px 0;}

/* ---------------- 预测 ---------------- */
.predict{display:none;}
.predict.show{display:block;padding:16px 14px;}
.predict-inner{display:flex;align-items:center;gap:12px;}
.predict-emoji{
  flex:none;width:38px;height:38px;border-radius:14px;background:var(--gold-soft);
  display:flex;align-items:center;justify-content:center;font-size:19px;line-height:1;
}
.predict-txt{flex:1;font-size:12.5px;color:var(--ink-2);line-height:1.65;letter-spacing:.2px;}
.predict-txt b{color:var(--peach-d);font-size:14px;font-variant-numeric:tabular-nums;}
.predict-sep{height:1px;background:linear-gradient(90deg,transparent,#F4E7D6,transparent);margin:12px 0;}

/* ---------------- 贴纸 ---------------- */
.stickers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:2px;}
.sticker{text-align:center;--tilt:0deg;}
.sticker:nth-child(3n+1){--tilt:-2.5deg;}
.sticker:nth-child(3n){--tilt:2.5deg;}
.sticker .badge{
  width:100%;aspect-ratio:1;border-radius:18px;display:flex;align-items:center;justify-content:center;
  font-size:22px;background:#FBF4E9;border:2px dashed #E7D4BC;filter:grayscale(1);opacity:.5;
  transform:rotate(var(--tilt));
  transition:filter .35s,opacity .35s,box-shadow .35s,background .35s,border-color .35s;
}
.sticker.on .badge{
  background:linear-gradient(160deg,#FFF6DE,#FFE4B8);
  border:2px solid #FFD98A;filter:none;opacity:1;
  box-shadow:0 6px 14px -6px rgba(255,190,80,.85);
  animation:pop .5s var(--ease);
}
.sticker .amt{font-size:10px;color:var(--ink-3);margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:.2px;}
.sticker.on .amt{color:var(--gold-d);font-weight:800;}
@keyframes pop{
  0%{transform:rotate(var(--tilt)) scale(.72);}
  62%{transform:rotate(var(--tilt)) scale(1.12);}
  100%{transform:rotate(var(--tilt)) scale(1);}
}

/* ---------------- 列表 ---------------- */
.month-list,.entry-list{display:flex;flex-direction:column;margin:-4px 0;}
.mrow{
  display:flex;align-items:center;gap:10px;padding:12px 6px;cursor:pointer;
  border-bottom:1px solid #F8EEE1;border-radius:12px;
  transition:background .16s;
}
.mrow:last-child{border-bottom:none;}
.mrow:active{background:#FFF8EE;}
.mrow .m{width:62px;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.3px;}
.mrow .w{flex:1;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.2px;}
.mrow .io{font-size:11px;color:var(--ink-3);text-align:right;line-height:1.45;font-variant-numeric:tabular-nums;}
.mrow .io em{font-style:normal;color:var(--mint-d);}
.mrow .io i{font-style:normal;color:var(--peach-d);}
.mrow .io .dash{color:#DCCBB8;font-size:13px;}
.mrow .x{
  border:none;background:#FBF4E9;color:#CBB9A6;font-size:13px;cursor:pointer;
  width:26px;height:26px;border-radius:99px;line-height:1;padding:0;flex:0 0 auto;
  transition:background .16s,color .16s;
}
.mrow .x:active{background:#FFEDE4;color:var(--peach-d);}

.erow{display:flex;align-items:center;gap:10px;padding:11px 6px;border-bottom:1px solid #F8EEE1;}
.erow:last-child{border-bottom:none;}
.erow .d{width:42px;font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.2px;}
.erow .n{flex:1;font-size:13px;color:var(--ink-2);}
.erow .a{font-size:13.5px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.2px;}
.erow .a.out{color:var(--peach-d);}
.erow .a.in{color:var(--mint-d);}
.erow .x{
  border:none;background:#FBF4E9;color:#CBB9A6;font-size:13px;cursor:pointer;
  width:26px;height:26px;border-radius:99px;line-height:1;padding:0;
  transition:background .16s,color .16s;
}
.erow .x:active{background:#FFEDE4;color:var(--peach-d);}
.empty-tip{text-align:center;color:var(--ink-3);font-size:12.5px;padding:22px 0;}

/* ---------------- 表单 ---------------- */
.field{display:block;margin-bottom:12px;}
.field span{display:block;font-size:11.5px;color:var(--ink-3);margin:0 0 6px 6px;letter-spacing:.5px;}
.field input{
  width:100%;padding:14px 16px;border-radius:var(--r-sm);border:1.5px solid var(--line);
  background:#FFFDF9;font-size:16px;color:var(--ink);font-family:inherit;outline:none;
  transition:border-color .18s,box-shadow .18s,background .18s;
  -webkit-appearance:none;appearance:none;
}
.field input:focus{border-color:var(--peach);background:#fff;box-shadow:0 0 0 4px rgba(255,159,107,.13);}
.field input::placeholder{color:#CBBAA8;}
.field input.mono-sm{font-size:13px;letter-spacing:0;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;}

/* ---------------- 底部导航 ---------------- */
.bottomnav{
  position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:560px;
  display:flex;justify-content:space-around;align-items:flex-end;
  padding:8px 14px calc(8px + env(safe-area-inset-bottom));
  background:rgba(255,252,246,.9);backdrop-filter:blur(18px) saturate(1.35);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
  border-top:1px solid #F7EBD9;z-index:40;
}
.nav{
  position:relative;flex:1;border:none;background:transparent;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:7px 0 5px;cursor:pointer;font-family:inherit;color:var(--ink-3);
  transition:color .2s;
}
.nav::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%) scale(.86);
  width:46px;height:30px;border-radius:99px;background:var(--peach-soft);
  opacity:0;transition:opacity .22s,transform .28s var(--ease);z-index:0;
}
.nav svg{
  position:relative;z-index:1;width:22px;height:22px;stroke:currentColor;fill:none;
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .24s var(--ease);
}
.nav b{position:relative;z-index:1;font-size:10px;font-weight:600;letter-spacing:1px;}
.nav.on{color:var(--peach-d);}
.nav.on::before{opacity:1;transform:translateX(-50%) scale(1);}
.nav.on svg{transform:translateY(-1px) scale(1.04);}
.nav.on b{font-weight:800;}

/* ---------------- 记一笔（悬浮） ---------------- */
.fab-entry{
  position:fixed;
  right:max(18px, calc(50% - 280px + 18px));
  bottom:calc(88px + env(safe-area-inset-bottom));
  z-index:45;
  display:flex;align-items:center;gap:4px;
  padding:14px 22px;border:none;border-radius:99px;cursor:pointer;
  background:var(--grad);color:#fff;font-size:15px;font-weight:700;font-family:inherit;
  letter-spacing:1px;box-shadow:0 14px 26px -10px rgba(238,127,70,.85),inset 0 1px 0 rgba(255,255,255,.42);
  animation:fabin .26s var(--ease);
  transition:transform .12s var(--ease),box-shadow .2s;
}
.fab-entry:active{transform:scale(.94);box-shadow:0 8px 16px -10px rgba(238,127,70,.9);}
@keyframes fabin{from{transform:translateY(14px) scale(.86);opacity:0;}to{transform:none;opacity:1;}}
#tab-log{padding-bottom:64px;}

/* ---------------- 弹层 ---------------- */
.mask{position:fixed;inset:0;background:rgba(78,58,43,.34);backdrop-filter:blur(3px);z-index:50;animation:fade .22s;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{
  position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:560px;
  background:var(--card);border-radius:30px 30px 0 0;
  padding:8px 20px calc(22px + env(safe-area-inset-bottom));
  z-index:60;box-shadow:0 -14px 44px rgba(140,110,70,.2);
  animation:slideup .3s var(--ease);max-height:92dvh;overflow-y:auto;
}
@keyframes slideup{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
.sheet-handle{width:40px;height:5px;border-radius:99px;background:#F0E1CC;margin:6px auto 16px;}
.sheet h3{margin:0 0 18px;font-size:17px;text-align:center;font-weight:800;letter-spacing:1px;}

/* ---------------- 确认对话框 ---------------- */
.dlg{
  position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(78,58,43,.28);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  animation:fade .2s;
}
.dlg-card{
  width:100%;max-width:318px;background:var(--card);border-radius:var(--r-lg);
  border:1px solid #FFF0DA;padding:24px 20px 18px;text-align:center;
  box-shadow:0 24px 60px -24px rgba(140,110,70,.6);
  animation:dlgpop .3s var(--ease);
}
@keyframes dlgpop{from{transform:scale(.9) translateY(10px);opacity:0}to{transform:none;opacity:1}}
.dlg-emoji{
  width:54px;height:54px;margin:0 auto 13px;border-radius:18px;background:#FFF1EC;
  display:flex;align-items:center;justify-content:center;font-size:25px;line-height:1;
  box-shadow:inset 0 0 0 1px rgba(255,214,201,.75);
}
.dlg h3{margin:0 0 7px;font-size:16.5px;font-weight:800;letter-spacing:.6px;color:var(--ink);}
.dlg-desc{margin:0 0 20px;font-size:12.5px;color:var(--ink-2);line-height:1.75;}
.dlg-desc b{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums;}
.dlg-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.dlg-btns button{
  border:none;border-radius:99px;padding:13px 8px;font-size:14px;font-family:inherit;
  font-weight:700;letter-spacing:.6px;cursor:pointer;
  transition:transform .14s,background .18s,box-shadow .18s;
}
.dlg-btns button:active{transform:scale(.97);}
.dlg-cancel{background:#FBF4E9;color:var(--ink-2);}
.dlg-cancel:active{background:#F6EDDF;}
.dlg-ok{
  background:linear-gradient(180deg,#F4795A 0%,#E05B36 100%);color:#fff;
  box-shadow:0 10px 20px -12px rgba(224,91,54,.95),inset 0 1px 0 rgba(255,255,255,.28);
}
.dlg-ok:active{background:#D9552F;}

/* ---------------- toast ---------------- */
.toast{
  position:fixed;left:50%;top:calc(34px + env(safe-area-inset-top));
  transform:translate(-50%,-24px) scale(.96);
  background:rgba(78,58,43,.94);color:#fff;padding:11px 20px;border-radius:99px;
  font-size:13px;letter-spacing:.4px;opacity:0;pointer-events:none;
  transition:all .28s var(--ease);z-index:99;white-space:nowrap;
  box-shadow:0 10px 24px -12px rgba(78,58,43,.7);
}
.toast.show{opacity:1;transform:translate(-50%,0) scale(1);}

/* ---------------- 滚动条 ---------------- */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:#EBDCC8;border-radius:99px;}
::-webkit-scrollbar-track{background:transparent;}

/* ---------------- 宽屏 ---------------- */
@media (min-width:600px){
  #mainView{padding-top:24px;}
  .hero{padding:22px 24px 24px;}
  .hero-jar{width:248px;height:232px;}
  .hero-wealth{font-size:42px;}
  .bottomnav{border-radius:24px 24px 0 0;box-shadow:0 -8px 30px -18px rgba(176,136,92,.7);}
  .card:hover{box-shadow:var(--sh);}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
