:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#253b32;background:#f6f5f0;font-synthesis:none;--green:#285943;--muted:#81887e;--line:#e5e7dd}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;background:transparent;color:inherit}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #a8be78;outline-offset:3px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:#253b32}textarea{min-height:110px;resize:vertical}label{display:block;font-size:13px;margin:16px 0 7px;color:#69766c}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:18px}h3{font-size:15px}.muted{color:var(--muted);font-size:13px;line-height:1.8}.small{font-size:12px}.shell{max-width:1280px;margin:auto;padding:0 42px 100px}.top{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:36px}.brand{display:flex;align-items:center;gap:12px;font-weight:650;letter-spacing:1px}.brand img{width:38px;height:38px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:400;margin-top:4px}.topnav{display:flex;gap:8px}.topnav button{padding:12px 20px;color:#838c80;font-size:14px;border-radius:30px}.topnav button.active{background:#e4ebdc;color:var(--green);font-weight:600}.topright{display:flex;align-items:center;gap:16px}.local{font-size:12px;color:#71826b}.local:before{content:'●';font-size:8px;margin-right:7px;color:#7c9966}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{color:#8d9a7b;font-size:11px;letter-spacing:2px;margin-bottom:12px}.pill{background:#edeedc;color:#798558;border-radius:20px;padding:8px 14px;font-size:12px}.grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px}.card{background:#fff;border:1px solid #e9ebe3;border-radius:20px;padding:26px;margin-bottom:22px}.balance{background:#28543f;color:#f3f6e8;position:relative;overflow:hidden;padding:30px}.balance:after{content:'✳';position:absolute;right:32px;top:18px;color:#628367;font-size:160px;line-height:1;opacity:.35}.balance .muted{color:#c1d1b8}.balance strong{font-size:62px;font-weight:500;letter-spacing:-2px}.balance .unit{font-size:13px;margin-left:12px}.balance .row{margin-top:24px;border-top:1px solid #54735c;padding-top:20px;justify-content:flex-start;gap:32px;position:relative;z-index:1}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.sectionhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.sectionhead h2{margin:0}.tag{font-size:11px;background:#f1f3ec;padding:5px 9px;border-radius:7px;color:#7b8b6d}.task{display:flex;gap:14px;padding:18px 0;border-top:1px solid #eff0e9;align-items:flex-start}.check{border:1px solid #cbd4c2;border-radius:7px;width:24px;height:24px;padding:0;flex-shrink:0}.check.done{background:#698955;color:white;border-color:#698955}.tasktext{font-size:15px;line-height:1.6}.done-text{text-decoration:line-through;color:#929b8a}.evidence{font-size:12px;color:#8b967f;margin-top:5px;padding:0}.progress{height:5px;border-radius:4px;background:#edf0e6;overflow:hidden;margin:22px 0}.progress i{height:100%;display:block;background:#98ac72}.primary{background:var(--green);color:#fff;border-radius:12px;padding:14px 20px;font-size:14px}.primary.full{width:100%;margin-top:10px}.secondary{border:1px solid #d9dfcf;border-radius:12px;padding:11px 15px;background:#fafbf7;font-size:13px}.danger{color:#a75b45}.link{color:#6e8858;font-size:12px;padding:4px}.empty{text-align:center;padding:26px 10px;color:#8b9383;line-height:1.8;font-size:13px}.empty-symbol{font-size:32px;margin-bottom:12px;color:#a2b28a}.free{background:#eef0e4;border:0}.free p{font-size:13px;line-height:2;color:#7c866d}.free .quote{font-family:Georgia,serif;font-size:16px;color:#57694c;line-height:1.8;margin-top:20px}.footer-note{font-size:11px;color:#a2a797;text-align:center;margin-top:24px}.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product{margin:0}.emoji{font-size:30px;display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;background:#f1f2e7;border-radius:18px;margin-bottom:18px}.product h3{margin-bottom:6px}.price{font-size:24px;font-weight:550}.price small{font-size:12px;font-weight:400;color:#89927e;margin-left:5px}.product .row{margin-top:22px}.coupon{border-top:1px solid var(--line);padding:16px 0}.coupon h3{margin:0 0 7px}.coupon p{margin:0}.coupon .row{margin-top:10px}.ledger{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:18px 0}.ledger .coin{width:38px;height:38px;display:grid;place-items:center;background:#eff2e6;border-radius:12px}.ledger .description{flex:1}.ledger strong{font-size:17px}.positive{color:#5e8149}.negative{color:#a77b59}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.stats .card{margin:0;padding:22px}.stats strong{display:block;font-size:28px;margin-top:10px}.bars{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:15px;margin-bottom:10px}.bars div{flex:1;min-width:4px;background:#a5b88b;border-radius:4px 4px 0 0}.bars div:last-child{background:#325b44}.gate{max-width:440px;margin:8vh auto;padding:26px}.gate .brand{margin-bottom:46px}.gate h1{font-size:31px;line-height:1.4}.gate .card{margin-top:30px}.gate input{margin-bottom:12px}.gate .muted{margin-bottom:0}.notice{padding:16px;background:#eef0e3;border-radius:12px;font-size:12px;line-height:1.9;color:#728066;margin:16px 0}.mobile-nav{display:none}#toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:#253d31;color:white;padding:14px 22px;border-radius:12px;z-index:20;max-width:90vw;box-shadow:0 10px 40px #0002;display:none;font-size:14px}dialog{border:1px solid #e6e8df;border-radius:22px;max-width:460px;width:calc(100% - 32px);padding:26px;color:#253b32;max-height:85vh;overflow:auto}dialog::backdrop{background:#17281d66;backdrop-filter:blur(4px)}dialog h2{margin:0}dialog .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid .card{margin:0}.rule{font-size:13px;line-height:1.9;padding:10px 0;border-top:1px solid var(--line)}.banner{background:#ede7d7;padding:15px 20px;border-radius:12px;margin-bottom:22px;font-size:13px;color:#7c7054}.spark{color:#a6ba84}.milestone{border-top:1px solid var(--line);padding:18px 0}.milestone h3{margin-bottom:8px}.milestone .muted{margin:0 0 10px}svg.chart{width:100%;height:150px;overflow:visible}.rule strong{font-weight:600}a{color:#587247}input[type=file]{font-size:12px}button.lock{font-size:12px;color:#8c9784}
@media(max-width:950px){.shell{padding:0 24px 100px}.grid{grid-template-columns:minmax(0,1fr) 270px}.topnav button{padding:10px 13px}.topright .local{display:none}}
@media(max-width:700px){.shell{padding:0 18px 110px}.top{height:82px;margin-bottom:25px}.brand{font-size:15px}.brand img{width:33px;height:33px}.topnav{display:none}.topright{gap:8px}.grid{grid-template-columns:1fr;gap:0}.intro{align-items:flex-start;margin-bottom:20px}h1{font-size:26px}.intro .pill{font-size:10px;padding:7px 10px;white-space:nowrap}.card{padding:22px;border-radius:18px;margin-bottom:18px}.balance{padding:26px}.balance strong{font-size:58px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;background:#fdfdf9f5;border-top:1px solid #e5e8dc;padding:12px 8px calc(12px + env(safe-area-inset-bottom));z-index:5;backdrop-filter:blur(12px)}.mobile-nav button{font-size:10px;color:#939c88;width:25%}.mobile-nav span{font-size:21px;display:block;margin-bottom:4px}.mobile-nav .active{color:#31583f}.products{gap:12px}.product{padding:18px}.product .row{flex-wrap:wrap}.product .primary{width:100%;padding:11px}.emoji{width:48px;height:48px;font-size:25px}.price{font-size:21px}.stats{gap:8px}.stats .card{padding:15px}.stats strong{font-size:23px}.stats .muted{font-size:11px}.settings-grid{grid-template-columns:1fr}.gate{margin:4vh auto}.eyebrow{font-size:10px}.free{margin-top:2px}}

/* The same semantic palette covers every screen, including the locked vault. */
:root,[data-theme="forest"]{--page:#f6f5f0;--surface:#fff;--text:#253b32;--muted:#687460;--line:#e1e6d9;--green:#285943;--soft:#edf0e4;--accent:#92a76d;--hero:#28543f;--hero-text:#f3f6e8;--hero-muted:#cbd9c3;--hero-line:#54735c;--on-primary:#fff;--warn-bg:#f1ebdc;--warn-text:#766039;--positive:#52733d;--negative:#9a613c}
[data-theme="ocean"]{--page:#f0f6fa;--surface:#fff;--text:#223f50;--muted:#5d7888;--line:#dbe6ee;--green:#245e7c;--soft:#e5f0f7;--accent:#82b3cb;--hero:#245e7c;--hero-text:#f3fbff;--hero-muted:#c5e2ef;--hero-line:#56839b;--warn-bg:#e5eef6;--warn-text:#365a72;--positive:#366f75;--negative:#956038}
[data-theme="lavender"]{--page:#f5f2fa;--surface:#fff;--text:#42364f;--muted:#786786;--line:#e7dfef;--green:#67508a;--soft:#eee7f6;--accent:#b5a0d1;--hero:#67508a;--hero-text:#fbf8ff;--hero-muted:#e0d1f0;--hero-line:#927dad;--warn-bg:#efe7f7;--warn-text:#6d5284;--positive:#6c6192;--negative:#9b6358}
[data-theme="rose"]{--page:#fbf2f3;--surface:#fffafa;--text:#513742;--muted:#886a76;--line:#eedde2;--green:#98586b;--soft:#f6e7ec;--accent:#d4a0af;--hero:#98586b;--hero-text:#fff8fa;--hero-muted:#f1d4de;--hero-line:#b98092;--warn-bg:#f6e7e9;--warn-text:#865469;--positive:#896177;--negative:#a55a42}
[data-theme="amber"]{--page:#fbf5eb;--surface:#fffdf9;--text:#4c3c2c;--muted:#83715d;--line:#eddfcd;--green:#8c5c2b;--soft:#f5ebda;--accent:#d6b37a;--hero:#8c5c2b;--hero-text:#fffaf0;--hero-muted:#efddc2;--hero-line:#b58a58;--warn-bg:#f6e8d0;--warn-text:#7f572c;--positive:#74804c;--negative:#a05e3b}
[data-theme="midnight"]{--page:#151c25;--surface:#202b38;--text:#e1ebf3;--muted:#adbfce;--line:#354656;--green:#a1c9de;--soft:#2a3c4d;--accent:#88b1cf;--hero:#29475f;--hero-text:#edf8ff;--hero-muted:#c4dfef;--hero-line:#526e83;--on-primary:#172e3e;--warn-bg:#333b45;--warn-text:#d5c7a9;--positive:#abd3b3;--negative:#e6b39b}
:root{color:var(--text);background:var(--page)}body{background:var(--page);color:var(--text)}.card,dialog,input,textarea,select{background:var(--surface);color:var(--text);border-color:var(--line)}.balance{background:var(--hero);color:var(--hero-text)}.balance .muted{color:var(--hero-muted)}.balance .row{border-color:var(--hero-line)}.balance:after{color:var(--accent)}.primary,#toast{background:var(--green);color:var(--on-primary)}.secondary,.emoji,.tag,.pill,.notice,.topnav button.active,.free,.ledger .coin{background:var(--soft);color:var(--green)}.secondary,.task,.coupon,.rule,.milestone,.ledger,.top,.mobile-nav{border-color:var(--line)}.topnav button,.mobile-nav button,.muted,label,.local,.footer-note,.lock,.empty,.evidence,.theme-caption{color:var(--muted)}.topnav button.active,.mobile-nav button.active,.link,.eyebrow,.free .quote,a{color:var(--green)}.free p,.done-text{color:var(--muted)}.progress{background:var(--soft)}.progress i,.bars div{background:var(--accent)}.bars div:last-child{background:var(--green)}.check{border-color:var(--accent)}.check.done{background:var(--green);border-color:var(--green);color:var(--on-primary)}.empty-symbol,.spark{color:var(--accent)}.banner{background:var(--warn-bg);color:var(--warn-text)}.positive{color:var(--positive)}.negative,.danger{color:var(--negative)}.mobile-nav{background:var(--surface)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.price small{color:var(--muted)}.appearance-card{grid-column:1/-1}.theme-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.theme-option{padding:10px;border:1px solid var(--line);border-radius:15px;text-align:left;background:var(--surface);min-width:0}.theme-option.selected{outline:2px solid var(--green);outline-offset:2px}.theme-preview{display:block;height:82px;border-radius:9px;background:var(--preview-bg);padding:10px;position:relative;overflow:hidden;border:1px solid #8882}.theme-preview i{display:block;width:100%;height:35px;background:var(--preview-main);border-radius:5px}.theme-preview b{display:block;width:60%;height:6px;margin-top:8px;background:var(--preview-accent);border-radius:5px}.theme-preview em{display:block;width:35%;height:4px;margin-top:5px;background:var(--preview-accent);opacity:.65;border-radius:4px}.theme-title{display:block;font-size:13px;font-weight:600;margin-top:12px}.theme-caption{display:block;font-size:11px;line-height:1.5;margin-top:5px}.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-top:14px}.icon-grid button{font-size:23px;padding:7px 0;border-radius:8px;background:var(--soft)}.icon-grid button:hover{outline:2px solid var(--accent)}.icon-editor{display:flex;gap:14px;align-items:center}.icon-editor .emoji{margin:0;flex-shrink:0}.icon-editor input{min-width:0}.editable-icon{position:relative;cursor:pointer}.editable-icon span{position:absolute;font-size:11px;bottom:-3px;right:-3px;border:2px solid var(--surface);border-radius:50%;background:var(--green);color:var(--on-primary);width:21px;height:21px;display:grid;place-items:center}.import-plan{width:100%;margin-top:10px}.reminder-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin:22px 0}.reminder-flow span{padding:8px 10px;background:var(--soft);border-radius:9px;color:var(--green)}.reminder-flow i{font-style:normal;color:var(--muted)}.shortcut-steps{padding-left:22px;color:var(--muted);font-size:13px;line-height:1.85}.shortcut-steps li{margin:10px 0}
@media(max-width:950px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){input,textarea,select{font-size:16px}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-preview{height:80px}.theme-caption{font-size:11px}.icon-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.icon-grid button{font-size:21px}.appearance-card .eyebrow{letter-spacing:1px}}
.forgot-link{display:block;margin:0 auto;padding:10px 16px;text-decoration:underline;text-underline-offset:4px}.reset-warning{color:var(--negative);border:1px solid var(--line);line-height:1.9}.reset-ack{display:flex;align-items:flex-start;gap:10px;line-height:1.8}.reset-ack input{width:18px;height:18px;margin-top:3px;flex-shrink:0}
.update-entry{position:fixed;right:16px;bottom:16px;font-size:11px;padding:7px 10px;background:var(--surface);border:1px solid var(--line);border-radius:20px;color:var(--muted);text-decoration:none;z-index:6}#update-notice:not([hidden]){position:fixed;top:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 35px #0002;z-index:15;font-size:12px;width:max-content;max-width:calc(100% - 24px)}@media(max-width:700px){.update-entry{bottom:calc(85px + env(safe-area-inset-bottom));right:10px}}

