/* 三个本机小世界：共享清楚的账本布局，各有自己的纸页、配色和短动效。 */
:root[data-appearance] {
  --brand:var(--rausch);
  --accent:var(--rausch);
  --card:var(--surface);
  --border:var(--line);
  --theme-progress:var(--green);
  --theme-tape:#d5c6a6;
  --theme-paper-edge:#e4e1d2;
  --wish-bg:#e9eddf;
  --wish-line:#c8d1b8;
  --wish-ink:var(--green);
}
:root[data-appearance="forest"] {
  --rausch:#4b6846;--rausch-deep:#344e32;
  --bg:#f2f3e9;--surface:#fffef6;--surface-2:#e8ebdc;--surface-3:#dce2cd;
  --ink:#333c2e;--ink-2:#515d48;--muted:#67705d;--muted-2:#7c846e;
  --line:#dce1ce;--line-strong:#bdc8ac;
  --green:#476440;--green-soft:#e6eddb;--red:#a44742;--red-soft:#f7e7e1;
  --amber:#835e29;--amber-soft:#f3ebd2;--blue:#536e7b;
  --wish-bg:#e7ecdc;--wish-line:#bfcbaa;--wish-ink:#425e3b;
  --theme-tape:#d8c8a6;--theme-paper-edge:#dfe4d0;
}
:root[data-appearance="pets"] {
  --rausch:#af5065;--rausch-deep:#8f3c50;
  --bg:#fbf3ee;--surface:#fffdfa;--surface-2:#f4e6df;--surface-3:#ecd5cd;
  --ink:#48382f;--ink-2:#624b42;--muted:#7b685e;--muted-2:#8b776d;
  --line:#ebddd3;--line-strong:#d8c0b3;
  --green:#4a6955;--green-soft:#e9eee1;--red:#a44641;--red-soft:#f8e8e2;
  --amber:#86602d;--amber-soft:#f6ecd9;--blue:#596e84;
  --wish-bg:#f5e4df;--wish-line:#dfbfb6;--wish-ink:#914658;
  --theme-tape:#e5c0b4;--theme-paper-edge:#eee0d8;--theme-progress:#b26372;
}
:root[data-appearance="post"] {
  --rausch:#a64e48;--rausch-deep:#843c37;
  --bg:#f8f1e4;--surface:#fffdf4;--surface-2:#f1e6d1;--surface-3:#e8d8bb;
  --ink:#443a32;--ink-2:#605246;--muted:#786b5d;--muted-2:#8a7c6e;
  --line:#e5d8c3;--line-strong:#ccb79b;
  --green:#4b6863;--green-soft:#e7eee6;--red:#a14741;--red-soft:#f7e7df;
  --amber:#805d28;--amber-soft:#f5e9cc;--blue:#506980;
  --wish-bg:#eaf0e9;--wish-line:#bdcdc3;--wish-ink:#45635e;
  --theme-tape:#d6b6a6;--theme-paper-edge:#eaddc6;--theme-progress:#a96154;
}
#app-splash { background:var(--bg)!important; }
#app-splash>div { color:var(--rausch)!important; }
[data-appearance] .home-day-sheet { box-shadow:0 4px 0 var(--theme-paper-edge); }
[data-appearance] .home-day-sheet::before { background:var(--theme-tape); }
[data-appearance] .home-wishes-sheet { background:var(--wish-bg);border-color:var(--wish-line); }
[data-appearance] .home-wishes-sheet::after { border-color:var(--wish-ink); }
[data-appearance] .sub-goal-row { border-color:var(--wish-line); }
[data-appearance] .sub-goal-track { border-color:var(--wish-line); }
[data-appearance] .sub-goal-fill,[data-appearance] .sub-goal-row.done .sub-goal-fill { background:var(--theme-progress); }
[data-appearance] .sub-goal-pct,[data-appearance] .demo-journey strong,[data-appearance] .demo-journey>.btn { color:var(--wish-ink); }
[data-appearance] .demo-journey { border-color:var(--wish-line); }
[data-appearance] .home-goal-progress::-webkit-progress-value,[data-appearance] .workbench progress::-webkit-progress-value { background:var(--theme-progress); }
[data-appearance] .home-goal-progress::-moz-progress-bar,[data-appearance] .workbench progress::-moz-progress-bar { background:var(--theme-progress); }
[data-appearance] .home-cash-warning .home-cash-explanation { border-left-color:var(--line-strong); }
[data-appearance] .workbench-warning { border-color:var(--line-strong); }
[data-appearance] .xp-toast.success,[data-appearance] .xp-toast.achievement-toast { border-color:var(--line-strong); }
[data-appearance] .workbench-tabs .btn-primary { border-color:var(--line-strong); }
[data-appearance] .learn-records { border-color:var(--line); }
.hero-spark>path[stroke] { stroke:var(--rausch); }

/* 小屋的木标签、萌宠的布边、来信的邮票，装饰只留在边角。 */
[data-appearance="forest"] .home-day-sheet { border-radius:17px 17px 9px 17px; }
[data-appearance="forest"] .home-day-sheet::before { width:60px;height:13px;border-radius:2px;transform:rotate(-3deg);opacity:.85; }
[data-appearance="forest"] .home-wishes-sheet::after { width:29px;height:14px;right:28px;top:-10px;border:1.5px solid var(--wish-ink);border-radius:90% 10% 80% 15%;background:var(--wish-bg);transform:rotate(-20deg); }
[data-appearance="pets"] .home-day-sheet { border-radius:22px 22px 15px 22px; }
[data-appearance="pets"] .home-day-sheet::before { width:53px;height:14px;border:1px dashed #c99589;transform:rotate(-4deg);border-radius:3px;opacity:.9; }
[data-appearance="pets"] .home-wishes-sheet { border-radius:22px 9px 22px 22px;border-style:dashed; }
[data-appearance="pets"] .home-wishes-sheet::after { width:28px;height:18px;border:1.5px solid var(--wish-line);border-radius:50% 50% 44% 44%;background:var(--wish-bg);right:27px;top:-10px;transform:rotate(12deg); }
[data-appearance="post"] .home-day-sheet { border-radius:10px 10px 3px 10px; }
[data-appearance="post"] .home-day-sheet::before { width:48px;height:18px;border:1px dashed var(--rausch);background:var(--surface-2);left:30px;top:-10px;transform:rotate(-5deg);opacity:1; }
[data-appearance="post"] .home-wishes-sheet { border-radius:4px;border:1px dashed var(--wish-line);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(75,104,99,.035) 31px 32px); }
[data-appearance="post"] .home-wishes-sheet::after { width:33px;height:25px;right:23px;top:-13px;border:2px dotted var(--rausch);border-radius:1px;background:var(--surface-2);transform:rotate(6deg); }
.home-theme-preview { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:144px;min-height:112px;border-radius:14px; }
.home-theme-preview .home-welcome-art { width:160px;height:106px;transition:transform .18s ease; }
.home-theme-label { display:block;font-size:11px;color:var(--muted);line-height:1.7;white-space:nowrap; }
.home-theme-preview:focus-visible { outline-offset:4px; }

/* 主题柜：原生单选按钮的焦点与语义保持完整。 */
.settings-modal { width:min(760px,100%); }
.appearance-settings { margin:0 0 25px;padding-bottom:22px;border-bottom:1px dashed var(--line-strong); }
.appearance-fieldset { padding:0;margin:0;border:0;min-width:0; }
.appearance-fieldset>legend { padding:0;font-family:var(--notebook-heading);font-size:20px;font-weight:650;line-height:1.5; }
.appearance-hint { font-size:12px;color:var(--muted);line-height:1.8;margin:7px 0 15px; }
.appearance-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.appearance-option { position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;padding:11px 9px 10px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);cursor:pointer;text-align:center; }
.appearance-option>input { position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%); }
.appearance-option:has(>input:focus-visible) { outline:2px solid var(--green);outline-offset:4px; }
.appearance-option.is-selected { border:2px solid var(--rausch);padding:10px 8px 9px; }
.appearance-option.is-selected::after { content:"";position:absolute;inset:3px;border:1px solid var(--line);border-radius:8px;pointer-events:none; }
.appearance-preview { display:grid;place-items:center;width:100%;height:117px;margin-bottom:9px;border-radius:8px; }
.appearance-option[data-choice="forest"] .appearance-preview { background:#edf0df; }
.appearance-option[data-choice="pets"] .appearance-preview { background:#f8e8df; }
.appearance-option[data-choice="post"] .appearance-preview { background:#f4ecd7; }
.appearance-preview>.domo-art { width:145px;height:105px;max-width:100%; }
.appearance-option>strong { font-family:var(--notebook-heading);font-size:16px;line-height:1.7; }
.appearance-description { font-size:11px;color:var(--muted);margin-top:3px;line-height:1.6; }
.appearance-selected { display:block;font-size:11px;font-weight:600;line-height:1.8;margin-top:10px;color:var(--muted); }
.is-selected .appearance-selected { color:var(--rausch); }
.appearance-motion { margin-top:23px; }
.appearance-motion>legend { font-family:inherit;font-size:14px;font-weight:600; }
.appearance-motion-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px; }
.appearance-motion-option { display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:12px;cursor:pointer;min-height:64px; }
.appearance-motion-option:has(input:checked) { background:var(--surface-2);border-color:var(--line-strong); }
.appearance-motion-option>input { width:17px;height:17px;flex:none;accent-color:var(--rausch);margin:0; }
.appearance-motion-option>span { display:grid;gap:4px;min-width:0; }
.appearance-motion-option strong { font-size:13px;font-weight:600; }
.appearance-motion-option small { font-size:11px;line-height:1.7;color:var(--muted); }
.appearance-motion-note { margin:10px 0 0; }
.appearance-error { color:var(--red);font-size:13px;line-height:1.7;margin:10px 0 0; }
.appearance-error:empty { display:none; }

/* 动起来的是小图案，不是金额或表单。只由明确的切换动作触发。 */
[data-motion="full"] .topbar,[data-motion="full"] body,[data-motion="full"] .home-day-sheet,[data-motion="full"] .home-wishes-sheet,[data-motion="full"] .modal,[data-motion="full"] .mobile-tabbar { transition:background-color .24s ease,border-color .24s ease; }
[data-motion="full"].appearance-changing .scene-play .art-leaf { transform-box:fill-box;transform-origin:50% 100%;animation:leaf-greeting .55s ease-out both; }
[data-motion="full"].appearance-changing .scene-play .art-tail { transform-box:fill-box;transform-origin:20% 70%;animation:tail-greeting .5s ease-out both; }
[data-motion="full"].appearance-changing .scene-play .art-ear { transform-box:fill-box;transform-origin:50% 100%;animation:ear-greeting .5s ease-out both; }
[data-motion="full"].appearance-changing .scene-play .art-letter { transform-box:fill-box;transform-origin:center;animation:letter-arrival .5s ease-out both; }
[data-motion="full"].appearance-changing .scene-play .art-flower,[data-motion="full"].appearance-changing .scene-play .art-spark { transform-box:fill-box;transform-origin:center;animation:flower-greeting .55s ease-out both; }
[data-motion="full"].appearance-changing .home-theme-preview.scene-play>.home-welcome-art { animation:scene-arrival .28s ease-out both; }
@keyframes leaf-greeting { 0%{transform:rotate(-5deg)}35%{transform:rotate(6deg)}70%{transform:rotate(-2deg)}100%{transform:rotate(0)} }
@keyframes tail-greeting { 0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg)}65%{transform:rotate(8deg)} }
@keyframes ear-greeting { 0%,100%{transform:rotate(0)}45%{transform:rotate(-5deg)} }
@keyframes letter-arrival { 0%{transform:translateY(-5px) rotate(-5deg)}65%{transform:translateY(1px) rotate(1deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes flower-greeting { 0%,100%{transform:scale(1)}50%{transform:scale(1.08)} }
@keyframes scene-arrival { from{opacity:.45;transform:translateY(3px)}to{opacity:1;transform:translateY(0)} }

/* 一次成功，一次确认：重复提交不累积提示，减少动效仍有静态文字。 */
.cute-feedback { position:fixed;z-index:1200;bottom:32px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 36px);padding:11px 18px 11px 12px;border:1px solid var(--line-strong);border-radius:13px;background:var(--surface);color:var(--ink);box-shadow:0 4px 0 var(--theme-paper-edge);pointer-events:none; }
.cute-feedback-token { display:inline-flex;width:31px;height:31px;flex:none; }
.cute-feedback-token>svg { width:100%;height:100%; }
.cute-feedback-message { font-size:14px;line-height:1.6;font-weight:600; }
.goal-progress-display { position:relative;margin:12px 0 0; }
.goal-progress-display>.goal-progress-semantics { position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden; }
.goal-progress-track { display:block;width:100%;height:10px;border-radius:6px;background:var(--surface-3);overflow:hidden; }
.goal-progress-fill { display:block;height:100%;border-radius:6px;background:var(--theme-progress);transform-origin:left center; }
[data-motion="full"] .cute-feedback-token { animation:little-confirm .5s ease-out both; }
[data-motion="full"] .cute-feedback-message { animation:confirm-arrival .2s ease-out both; }
[data-motion="full"] .cute-progress-once { transform-origin:left center; }
[data-motion="full"] div.cute-progress-once { animation:funding-fill .4s ease-out both; }
[data-motion="full"] .goal-progress-fill.cute-progress-once { animation:funding-fill .4s ease-out both; }
[data-motion="full"] progress.cute-progress-once::-webkit-progress-value { transform-origin:left center;animation:funding-fill .4s ease-out both; }
[data-motion="full"] progress.cute-progress-once::-moz-progress-bar { transform-origin:left center;animation:funding-fill .4s ease-out both; }
@keyframes little-confirm { 0%{transform:scale(.9) rotate(-7deg)}45%{transform:scale(1.12) rotate(5deg)}75%{transform:scale(.98) rotate(-2deg)}100%{transform:scale(1) rotate(0)} }
@keyframes confirm-arrival { from{opacity:.5;transform:translateY(2px)}to{opacity:1;transform:translateY(0)} }
@keyframes funding-fill { from{transform:scaleX(var(--goal-from,1))}to{transform:scaleX(1)} }

@media(hover:hover) and (pointer:fine) {
  [data-motion="full"] .home-theme-preview:hover .home-welcome-art { transform:rotate(-1.5deg) translateY(-2px); }
  .appearance-option:hover { border-color:var(--rausch); }
}
@media(max-width:720px) {
  .home-theme-preview { min-width:100px;min-height:92px;gap:1px; }
  .home-theme-preview .home-welcome-art { width:105px;height:73px; }
  .home-theme-label { font-size:10px; }
  .settings-modal .modal-body { padding-left:17px;padding-right:17px; }
  .appearance-fieldset>legend { font-size:19px; }
  .appearance-options { gap:7px; }
  .appearance-option { padding:7px 5px 8px;border-radius:9px; }
  .appearance-option.is-selected { padding:6px 4px 7px; }
  .appearance-option.is-selected::after { inset:3px;border-radius:6px; }
  .appearance-preview { height:78px;margin-bottom:8px;border-radius:5px; }
  .appearance-preview>.domo-art { width:99px;height:73px; }
  .appearance-option>strong { font-size:13px; }
  .appearance-description { font-size:10px;line-height:1.8; }
  .appearance-selected { font-size:10px;margin-top:7px; }
  .appearance-motion-options { grid-template-columns:1fr;gap:8px; }
  .appearance-motion-option { min-height:60px;padding:10px 12px; }
  .appearance-motion-option>span { display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px; }
  .appearance-motion { margin-top:20px; }
  .appearance-motion>legend { font-size:14px; }
  .appearance-hint { margin-top:5px;margin-bottom:12px;font-size:12px; }
  .appearance-motion-note { margin:9px 0 0; }
  .appearance-settings { padding-bottom:20px;margin-bottom:22px; }
  .cute-feedback { bottom:calc(84px + env(safe-area-inset-bottom));padding:9px 13px 9px 10px;border-radius:11px; }
  body.mg-modal-open .cute-feedback { bottom:calc(22px + env(safe-area-inset-bottom)); }
  .cute-feedback-message { font-size:13px; }
  .workbench-section:has(>.goal-progress-display)>.workbench-row { flex-direction:row;align-items:center; }
}
@media(max-width:360px) {
  .appearance-options { gap:5px; }
  .appearance-option>strong { font-size:12px; }
  .appearance-description { font-size:9px; }
  .appearance-preview { height:65px; }
  .appearance-preview>.domo-art { width:86px;height:61px; }
  .home-theme-preview { min-width:87px; }
  .home-theme-preview .home-welcome-art { width:89px;height:65px; }
  .home-theme-label { font-size:9px; }
}
[data-motion="reduce"] *,[data-motion="reduce"] *::before,[data-motion="reduce"] *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}
