#app { background: #f7f7f2; color: #252724; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: calc(28 * var(--rpx)); }
button::after { border: 0; }
button { border-radius: 0; margin: 0; padding: 0; line-height: 1.4; font-size: inherit; background: none; color: inherit; }
div, button, input, div { box-sizing: border-box; }

.app-shell{padding:0 calc(36 * var(--rpx)) calc(180 * var(--rpx));min-height:100vh}.header{height:calc(144 * var(--rpx));display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;font-weight:800;font-size:calc(40 * var(--rpx));letter-spacing:calc(-2 * var(--rpx))}.brand-dot{height:calc(10 * var(--rpx));width:calc(10 * var(--rpx));background:#849d52;border-radius:50%;margin:calc(18 * var(--rpx)) 0 0 calc(6 * var(--rpx))}.brand-mark{display:flex;gap:calc(5 * var(--rpx));align-items:center;justify-content:center;width:calc(54 * var(--rpx));height:calc(54 * var(--rpx));background:#d7eea4;border-radius:calc(16 * var(--rpx));margin-right:calc(12 * var(--rpx));transform:rotate(-7deg)}.bar{background:#343a27;width:calc(6 * var(--rpx));border-radius:calc(4 * var(--rpx))}.bar-one{height:calc(18 * var(--rpx))}.bar-two{height:calc(30 * var(--rpx))}.bar-three{height:calc(22 * var(--rpx))}.header-note{font-size:calc(22 * var(--rpx));color:#777b6f}.section-intro{display:flex;justify-content:space-between;align-items:center;margin:calc(8 * var(--rpx)) 0 calc(30 * var(--rpx))}.eyebrow{font-size:calc(17 * var(--rpx));letter-spacing:calc(2 * var(--rpx));font-weight:600;color:#929785}.greeting{font-size:calc(30 * var(--rpx));font-weight:600;margin-top:calc(12 * var(--rpx));letter-spacing:calc(-1 * var(--rpx))}.date-chip{font-size:calc(21 * var(--rpx));color:#747968;border:calc(1 * var(--rpx)) solid #dddeda;border-radius:calc(30 * var(--rpx));padding:calc(10 * var(--rpx)) calc(18 * var(--rpx));font-variant-numeric:tabular-nums}.balance-card{position:relative;overflow:hidden;background:#2c342c;color:#f4f4e9;border-radius:calc(32 * var(--rpx));padding:calc(34 * var(--rpx)) calc(32 * var(--rpx)) calc(22 * var(--rpx))}.balance-top{display:flex;align-items:center;justify-content:space-between;font-size:calc(23 * var(--rpx));color:#c1c8bc;position:relative;z-index:1}.status-pill{display:flex;align-items:center;font-size:calc(18 * var(--rpx));background:#414a3d;color:#d1e2b6;border-radius:calc(22 * var(--rpx));padding:calc(9 * var(--rpx)) calc(14 * var(--rpx))}.status-dot{height:calc(7 * var(--rpx));width:calc(7 * var(--rpx));border-radius:50%;background:#cce99c;margin-right:calc(7 * var(--rpx))}.balance-label{margin-top:calc(46 * var(--rpx));color:#e0e3d6;font-size:calc(26 * var(--rpx));display:flex;align-items:center;gap:calc(14 * var(--rpx));position:relative;z-index:1}.tiny-arrow{font-size:calc(30 * var(--rpx));color:#bdd58f}.balance-amount{display:flex;align-items:baseline;position:relative;z-index:1;color:#d6eea5;margin:calc(4 * var(--rpx)) 0 calc(14 * var(--rpx));white-space:nowrap}.currency{font-size:calc(42 * var(--rpx));margin-right:calc(10 * var(--rpx));font-weight:400}.big-number{font-size:calc(110 * var(--rpx));font-weight:600;letter-spacing:calc(-5 * var(--rpx));line-height:1.24;font-variant-numeric:tabular-nums}.amount-unit{font-size:calc(24 * var(--rpx));margin-left:calc(15 * var(--rpx));color:#d7e0ca}.balance-rule{font-size:calc(22 * var(--rpx));color:#b4beae;position:relative;z-index:1}.hero-divider{height:calc(1 * var(--rpx));background:#515a49;margin-top:calc(30 * var(--rpx));position:relative;z-index:1}.hero-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:calc(17 * var(--rpx));font-size:calc(20 * var(--rpx));color:#b4beae;position:relative;z-index:1}.mini-spark{font-size:calc(40 * var(--rpx));color:#d6eea5;line-height:1}.hero-ring{position:absolute;border:calc(1 * var(--rpx)) solid #637056;border-radius:50%;opacity:.45;right:calc(-135 * var(--rpx));top:calc(55 * var(--rpx));height:calc(310 * var(--rpx));width:calc(310 * var(--rpx));transform:rotate(-30deg)}.ring-two{right:calc(-175 * var(--rpx));top:calc(20 * var(--rpx));width:calc(350 * var(--rpx));height:calc(350 * var(--rpx))}.gain{background:#314330}.metrics-row{display:flex;gap:calc(18 * var(--rpx));margin:calc(22 * var(--rpx)) 0}.metric{flex:1;min-width:0;background:#fff;border:calc(1 * var(--rpx)) solid #eceee5;border-radius:calc(24 * var(--rpx));padding:calc(24 * var(--rpx))}.metric-label{display:flex;align-items:center;font-size:calc(22 * var(--rpx));color:#787d70}.metric-dot{display:block;width:calc(11 * var(--rpx));height:calc(11 * var(--rpx));border-radius:50%;margin-right:calc(9 * var(--rpx))}.purple{background:#b1a0d0}.orange{background:#dcb083}.metric-value{font-size:calc(46 * var(--rpx));font-weight:600;letter-spacing:calc(-2 * var(--rpx));margin:calc(13 * var(--rpx)) 0 calc(5 * var(--rpx));white-space:nowrap;font-variant-numeric:tabular-nums}.metric-unit{font-size:calc(22 * var(--rpx));font-weight:400;letter-spacing:0;margin-left:calc(10 * var(--rpx));color:#8b9083}.metric-currency{font-size:calc(27 * var(--rpx));margin-right:calc(5 * var(--rpx))}.metric-hint{font-size:calc(18 * var(--rpx));color:#999d92}.checkin-button{width:100%;height:calc(112 * var(--rpx));border-radius:calc(22 * var(--rpx));background:#d8efa5;display:flex;align-items:center;padding:0 calc(26 * var(--rpx));font-size:calc(30 * var(--rpx));font-weight:600;letter-spacing:calc(.3 * var(--rpx));color:#293424}.checkin-icon{height:calc(48 * var(--rpx));width:calc(48 * var(--rpx));background:#303b2a;color:#e7f4ce;border-radius:50%;font-size:calc(34 * var(--rpx));display:flex;align-items:center;justify-content:center;margin-right:calc(19 * var(--rpx));font-weight:400}.checkin-arrow{margin-left:auto;font-size:calc(34 * var(--rpx));font-weight:400}.checkin-button[disabled]{background:#e8ecdf;color:#7c8770}.checkin-button.is-checked{background:#e2edce;color:#50623e}.checkin-caption{font-size:calc(19 * var(--rpx));color:#929785;display:flex;align-items:center;justify-content:center;gap:calc(16 * var(--rpx));margin:calc(18 * var(--rpx)) 0 calc(32 * var(--rpx));min-height:calc(28 * var(--rpx))}.text-button{font-size:calc(21 * var(--rpx));color:#717b62;text-align:left;display:inline-block}.undo-button{color:#757b6c;text-decoration:underline;font-size:calc(19 * var(--rpx))}.progress-card{background:#fff;border:calc(1 * var(--rpx)) solid #eceee5;border-radius:calc(24 * var(--rpx));padding:calc(26 * var(--rpx))}.section-row{display:flex;align-items:center;justify-content:space-between}.section-title{font-size:calc(27 * var(--rpx));font-weight:600}.title-dot{font-size:calc(24 * var(--rpx));color:#aab496;margin-left:calc(14 * var(--rpx))}.progress-percent{font-size:calc(32 * var(--rpx));font-weight:600;letter-spacing:calc(-1 * var(--rpx))}.percent-unit{font-size:calc(20 * var(--rpx));margin-left:calc(2 * var(--rpx))}.progress-track{height:calc(13 * var(--rpx));background:#eef0e8;border-radius:calc(20 * var(--rpx));margin:calc(22 * var(--rpx)) 0 calc(17 * var(--rpx));overflow:hidden}.progress-fill{height:100%;min-width:0;background:#b9ce89;border-radius:calc(20 * var(--rpx));transition:width .4s}.progress-summary{display:flex;justify-content:space-between;font-size:calc(20 * var(--rpx));color:#979c8e}.strong{color:#59624e;font-weight:600}.pace-note{padding:calc(18 * var(--rpx)) calc(16 * var(--rpx));background:#f5f7ee;border-radius:calc(12 * var(--rpx));font-size:calc(20 * var(--rpx));color:#818c6e;margin-top:calc(24 * var(--rpx));line-height:1.6}.pace-symbol{font-size:calc(24 * var(--rpx));margin-right:calc(10 * var(--rpx))}.week-card{margin-top:calc(34 * var(--rpx))}.week-strip{display:flex;justify-content:space-between;margin-top:calc(25 * var(--rpx))}.week-day{display:flex;flex-direction:column;align-items:center;gap:calc(12 * var(--rpx))}.week-label{font-size:calc(21 * var(--rpx));color:#989e90}.day-circle{width:calc(65 * var(--rpx));height:calc(65 * var(--rpx));border-radius:50%;display:flex;justify-content:center;align-items:center;background:#edeee7;font-size:calc(25 * var(--rpx));color:#9b9f92;border:calc(1 * var(--rpx)) solid transparent}.day-circle.today{border-color:#81995b;color:#4e6239}.day-circle.done{background:#d7eca7;border-color:#d7eca7;color:#42532e;font-size:calc(30 * var(--rpx))}.day-dot{height:calc(6 * var(--rpx));width:calc(6 * var(--rpx));background:#8c9b73;border-radius:50%;visibility:hidden}.day-dot.visible{visibility:visible}.expiry-line{display:flex;justify-content:center;align-items:center;gap:calc(10 * var(--rpx));font-size:calc(19 * var(--rpx));color:#a3a698;margin:calc(27 * var(--rpx)) 0 calc(2 * var(--rpx))}.small-clock{font-size:calc(26 * var(--rpx))}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;border-top:calc(1 * var(--rpx)) solid #e6e8dc;background:#fafbf6;padding:calc(20 * var(--rpx)) calc(46 * var(--rpx)) calc(calc(20 * var(--rpx)) + env(safe-area-inset-bottom));display:flex;justify-content:space-around}.nav-item{display:flex;flex-direction:column;align-items:center;gap:calc(9 * var(--rpx));color:#a0a591;min-width:calc(110 * var(--rpx));font-size:calc(20 * var(--rpx))}.nav-item.active{color:#35432b;font-weight:600}.nav-symbol{height:calc(34 * var(--rpx));width:calc(36 * var(--rpx));position:relative;margin:calc(2 * var(--rpx)) 0}.home-symbol{display:flex;align-items:flex-end;justify-content:center;gap:calc(5 * var(--rpx));padding-bottom:calc(1 * var(--rpx))}.home-symbol div{width:calc(7 * var(--rpx));height:calc(20 * var(--rpx));border-radius:calc(3 * var(--rpx));background:currentColor}.home-symbol div:nth-child(2){height:calc(32 * var(--rpx))}.home-symbol div:nth-child(3){height:calc(25 * var(--rpx))}.calendar-symbol{border:calc(3 * var(--rpx)) solid currentColor;border-radius:calc(6 * var(--rpx))}.calendar-symbol::before{content:'';position:absolute;left:0;right:0;top:calc(7 * var(--rpx));border-top:calc(3 * var(--rpx)) solid currentColor}.calendar-symbol div{position:absolute;width:calc(6 * var(--rpx));height:calc(6 * var(--rpx));background:currentColor;left:calc(7 * var(--rpx));top:calc(15 * var(--rpx));box-shadow:calc(10 * var(--rpx)) 0 currentColor}.card-symbol{border:calc(3 * var(--rpx)) solid currentColor;border-radius:calc(5 * var(--rpx));height:calc(28 * var(--rpx));margin-top:calc(6 * var(--rpx))}.card-symbol::before{content:'';position:absolute;left:0;right:0;top:calc(5 * var(--rpx));height:calc(5 * var(--rpx));background:currentColor}.card-symbol div{position:absolute;left:calc(4 * var(--rpx));bottom:calc(4 * var(--rpx));width:calc(9 * var(--rpx));border-top:calc(3 * var(--rpx)) solid currentColor}.welcome{padding-top:calc(25 * var(--rpx))}.welcome-title{font-size:calc(62 * var(--rpx));font-weight:650;letter-spacing:calc(-3 * var(--rpx));line-height:1.4;margin-top:calc(22 * var(--rpx))}.welcome-description{color:#8c927e;font-size:calc(25 * var(--rpx));line-height:1.9;margin-top:calc(22 * var(--rpx))}.welcome-art{height:calc(370 * var(--rpx));position:relative;display:flex;align-items:center;justify-content:center;margin:calc(25 * var(--rpx)) 0 calc(35 * var(--rpx))}.art-ticket{position:relative;z-index:2;background:#2f392e;border-radius:calc(22 * var(--rpx));padding:calc(30 * var(--rpx));width:calc(480 * var(--rpx));transform:rotate(-7deg);color:#d8efa9;box-shadow:0 calc(18 * var(--rpx)) calc(32 * var(--rpx)) #d9decb}.ticket-kicker{font-size:calc(16 * var(--rpx));letter-spacing:calc(2 * var(--rpx));color:#afbd9e}.ticket-title{font-size:calc(42 * var(--rpx));margin:calc(20 * var(--rpx)) 0;letter-spacing:calc(-1 * var(--rpx))}.ticket-title span{display:block}.ticket-line{border-bottom:calc(1 * var(--rpx)) dashed #7f8c71}.ticket-bottom{display:flex;justify-content:space-between;align-items:center;font-size:calc(19 * var(--rpx));padding-top:calc(20 * var(--rpx))}.ticket-bottom span:last-child{font-size:calc(34 * var(--rpx))}.art-orbit{position:absolute;border:calc(1 * var(--rpx)) solid #dce3cd;width:calc(620 * var(--rpx));height:calc(225 * var(--rpx));border-radius:50%;transform:rotate(25deg)}.orbit-two{transform:rotate(-25deg)}.art-badge{position:absolute;z-index:3;right:calc(4 * var(--rpx));bottom:calc(15 * var(--rpx));width:calc(145 * var(--rpx));height:calc(145 * var(--rpx));border-radius:50%;background:#d8efa5;display:flex;align-items:center;justify-content:center;font-size:calc(26 * var(--rpx));font-weight:700;line-height:1.2;transform:rotate(12deg)}.primary-button{display:flex;align-items:center;justify-content:space-between;padding:0 calc(30 * var(--rpx));width:100%;height:calc(106 * var(--rpx));border-radius:calc(20 * var(--rpx));background:#d8efa5;color:#303c26;font-size:calc(28 * var(--rpx));font-weight:600}.primary-button span:last-child{font-size:calc(34 * var(--rpx));font-weight:400}.welcome-foot{text-align:center;font-size:calc(20 * var(--rpx));color:#939a84;margin:calc(20 * var(--rpx)) 0}.example-note{text-align:center;font-size:calc(21 * var(--rpx));color:#989e8c;line-height:1.9;margin:calc(38 * var(--rpx)) 0 0}.page-title{font-size:calc(37 * var(--rpx));letter-spacing:calc(-1.3 * var(--rpx));font-weight:600;margin-top:calc(14 * var(--rpx))}.title-badge{height:calc(64 * var(--rpx));min-width:calc(64 * var(--rpx));display:flex;align-items:center;justify-content:center;background:#e8eddf;color:#6c7e51;border-radius:50%;font-size:calc(24 * var(--rpx));padding:0 calc(12 * var(--rpx))}.calendar-card{background:#fff;border:calc(1 * var(--rpx)) solid #e9ede0;border-radius:calc(26 * var(--rpx));padding:calc(20 * var(--rpx)) calc(22 * var(--rpx))}.month-selector{display:flex;align-items:center;justify-content:space-between;padding:calc(8 * var(--rpx)) 0 calc(24 * var(--rpx));font-size:calc(28 * var(--rpx));font-weight:600}.month-arrow{font-size:calc(44 * var(--rpx));width:calc(58 * var(--rpx));height:calc(58 * var(--rpx));line-height:1.1;color:#7d896b}.calendar-grid{display:flex;flex-wrap:wrap}.calendar-weekday{width:14.285%;text-align:center;color:#9ba38f;font-size:calc(21 * var(--rpx));padding-bottom:calc(22 * var(--rpx))}.calendar-cell{width:14.285%;height:calc(83 * var(--rpx));display:flex;align-items:center;justify-content:center}.calendar-day{height:calc(65 * var(--rpx));width:calc(65 * var(--rpx));border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;font-size:calc(25 * var(--rpx));border:calc(1 * var(--rpx)) solid transparent;color:#79816e}.calendar-day.today{border-color:#a1b67e}.calendar-day.done{background:#d9edb0;color:#3e502d}.calendar-check{position:absolute;right:calc(-1 * var(--rpx));bottom:calc(-1 * var(--rpx));font-size:calc(15 * var(--rpx));background:#6e8450;color:#fff;border-radius:50%;height:calc(23 * var(--rpx));width:calc(23 * var(--rpx));text-align:center;line-height:calc(23 * var(--rpx))}.calendar-legend{display:flex;align-items:center;gap:calc(10 * var(--rpx));font-size:calc(19 * var(--rpx));color:#9ba18f;border-top:calc(1 * var(--rpx)) solid #f1f2eb;padding:calc(24 * var(--rpx)) calc(4 * var(--rpx)) calc(5 * var(--rpx));margin-top:calc(20 * var(--rpx))}.legend-dot{height:calc(12 * var(--rpx));width:calc(12 * var(--rpx));background:#cfe69e;border-radius:50%}.month-total{margin-left:auto}.records-heading{margin:calc(38 * var(--rpx)) 0 calc(20 * var(--rpx))}.subtle{color:#939a87;font-size:calc(21 * var(--rpx));line-height:1.9}.record-list{background:#fff;border:calc(1 * var(--rpx)) solid #e9ede0;border-radius:calc(24 * var(--rpx));padding:0 calc(24 * var(--rpx))}.record-row{display:flex;align-items:center;gap:calc(18 * var(--rpx));padding:calc(25 * var(--rpx)) 0;border-bottom:calc(1 * var(--rpx)) solid #f0f2e9}.record-row:last-child{border-bottom:0}.record-icon{width:calc(60 * var(--rpx));height:calc(60 * var(--rpx));background:#edf3e3;display:flex;align-items:center;justify-content:center;border-radius:calc(18 * var(--rpx));color:#6a814b;font-size:calc(25 * var(--rpx))}.record-info{flex:1}.record-name{font-size:calc(25 * var(--rpx));font-weight:500}.today-tag{font-size:calc(16 * var(--rpx));color:#829665;background:#f0f5e5;border-radius:calc(6 * var(--rpx));padding:calc(4 * var(--rpx)) calc(8 * var(--rpx));margin-left:calc(12 * var(--rpx))}.record-date{font-size:calc(19 * var(--rpx));color:#a0a792;display:block;margin-top:calc(7 * var(--rpx))}.record-amount{text-align:right;color:#657e44;font-size:calc(28 * var(--rpx));font-weight:600}.record-value-label{display:block;font-size:calc(17 * var(--rpx));color:#a0a792;font-weight:400;margin-top:calc(7 * var(--rpx))}.footnote{margin-top:calc(30 * var(--rpx));color:#a0a792;font-size:calc(20 * var(--rpx));text-align:center}.empty-card{background:#eeefe6;border-radius:calc(24 * var(--rpx));text-align:center;padding:calc(42 * var(--rpx)) calc(20 * var(--rpx));font-size:calc(23 * var(--rpx));color:#9aa18d}.empty-icon{font-size:calc(48 * var(--rpx));color:#8e9f74}.empty-title{font-size:calc(28 * var(--rpx));color:#6c765f;margin:calc(14 * var(--rpx)) 0}.empty-card .text-button{display:block;text-align:center;margin-top:calc(26 * var(--rpx))}.form-card{background:#fff;border:calc(1 * var(--rpx)) solid #e7eadf;border-radius:calc(26 * var(--rpx));padding:calc(30 * var(--rpx)) calc(26 * var(--rpx))}.form-label{font-size:calc(24 * var(--rpx));font-weight:500;margin-bottom:calc(16 * var(--rpx));color:#666f5a}.optional{color:#adb49f;font-size:calc(18 * var(--rpx));margin-left:calc(12 * var(--rpx));font-weight:400}.form-input,.date-input{background:#f7f8f2;border:calc(1 * var(--rpx)) solid #eceee4;border-radius:calc(13 * var(--rpx));height:calc(86 * var(--rpx));font-size:calc(27 * var(--rpx));color:#414b36;padding:0 calc(22 * var(--rpx));width:100%}.form-input{display:block}.money-fields{display:flex;gap:calc(24 * var(--rpx));margin-top:calc(32 * var(--rpx))}.money-field{flex:1;min-width:0}.money-input-wrap{display:flex;align-items:center;padding:0 calc(18 * var(--rpx));height:calc(100 * var(--rpx));background:#f7f8f2;border:calc(1 * var(--rpx)) solid #eceee4;border-radius:calc(14 * var(--rpx));font-size:calc(28 * var(--rpx));color:#828c72;gap:calc(10 * var(--rpx))}.money-input{height:100%;width:100%;min-width:0;font-size:calc(40 * var(--rpx));font-weight:600;color:#303c26}.field-help{font-size:calc(20 * var(--rpx));line-height:1.8;color:#a0a78f;margin-top:calc(17 * var(--rpx))}.date-label{margin-top:calc(28 * var(--rpx))}.date-input{display:flex;align-items:center;justify-content:space-between;font-variant-numeric:tabular-nums}.date-icon{color:#a4ad96;font-size:calc(30 * var(--rpx))}.setup-note{display:flex;gap:calc(18 * var(--rpx));color:#929b82;font-size:calc(23 * var(--rpx));line-height:1.8;margin:calc(32 * var(--rpx)) calc(10 * var(--rpx))}.note-star{font-size:calc(46 * var(--rpx));color:#9cb875}.privacy-note{font-size:calc(20 * var(--rpx));color:#a2aa94;line-height:1.8;text-align:center;margin:calc(24 * var(--rpx)) calc(12 * var(--rpx))}.membership-card{background:#c9dca6;border-radius:calc(25 * var(--rpx));position:relative;padding:calc(30 * var(--rpx));color:#36412d}.membership-top{display:flex;justify-content:space-between;font-size:calc(19 * var(--rpx));letter-spacing:calc(2 * var(--rpx))}.membership-top span:last-child{font-size:calc(32 * var(--rpx));line-height:1}.membership-name{font-size:calc(35 * var(--rpx));margin-top:calc(38 * var(--rpx));font-weight:600}.membership-price{font-size:calc(56 * var(--rpx));font-weight:600;letter-spacing:calc(-1 * var(--rpx));margin:calc(12 * var(--rpx)) 0 calc(34 * var(--rpx))}.membership-price span{font-size:calc(20 * var(--rpx));font-weight:400;color:#73835c;margin-left:calc(14 * var(--rpx));letter-spacing:0}.membership-bottom{display:flex;justify-content:space-between;border-top:calc(1 * var(--rpx)) solid #aebb93;padding-top:calc(20 * var(--rpx));font-size:calc(17 * var(--rpx));color:#6c7b58}.details-card{background:#fff;border:calc(1 * var(--rpx)) solid #e9ede0;border-radius:calc(22 * var(--rpx));padding:calc(3 * var(--rpx)) calc(26 * var(--rpx));margin:calc(24 * var(--rpx)) 0}.detail-row{display:flex;justify-content:space-between;padding:calc(25 * var(--rpx)) 0;border-bottom:calc(1 * var(--rpx)) solid #f0f2e9;font-size:calc(24 * var(--rpx));color:#969f86}.detail-row:last-child{border-bottom:0}.detail-row span:last-child{color:#535f45;font-weight:500}.formula-card{border-top:calc(1 * var(--rpx)) solid #e4e8db;margin-top:calc(35 * var(--rpx));padding-top:calc(30 * var(--rpx))}.formula-line{font-size:calc(22 * var(--rpx));color:#758361;margin:calc(18 * var(--rpx)) 0 calc(12 * var(--rpx));line-height:1.7}.delete-button{font-size:calc(21 * var(--rpx));color:#b38674;display:block;margin:calc(28 * var(--rpx)) auto 0;padding:calc(20 * var(--rpx))}.error-message{background:#fff0e8;border:calc(1 * var(--rpx)) solid #f0c8b6;padding:calc(20 * var(--rpx)) calc(24 * var(--rpx));border-radius:calc(16 * var(--rpx));color:#b45f3e;font-size:calc(23 * var(--rpx));line-height:1.6;margin-bottom:calc(20 * var(--rpx))}
.art-badge{flex-direction:column}.big-number{font-size:calc(100 * var(--rpx))}
.balance-explain{position:relative;z-index:1;font-size:calc(18 * var(--rpx));color:#a1ae94;margin-top:calc(9 * var(--rpx))}.recovery-actions{display:flex;justify-content:space-between;margin:0 calc(4 * var(--rpx)) calc(28 * var(--rpx))}.weekly-target{display:flex;align-items:center;justify-content:space-between;margin-top:calc(25 * var(--rpx))}.weekly-count{font-size:calc(43 * var(--rpx));font-weight:600;letter-spacing:calc(-1 * var(--rpx))}.weekly-count span{font-size:calc(25 * var(--rpx));font-weight:400;color:#9ba58b;margin-left:calc(8 * var(--rpx))}.weekly-count-label{font-size:calc(20 * var(--rpx));color:#949f83;margin-left:calc(12 * var(--rpx))}.goal-picker{padding:calc(12 * var(--rpx)) calc(18 * var(--rpx));border-radius:calc(25 * var(--rpx));background:#e9efdc;color:#6c7c53;font-size:calc(21 * var(--rpx));white-space:nowrap}.week-hint{color:#7d8b68;font-size:calc(22 * var(--rpx));line-height:1.7;margin-top:calc(18 * var(--rpx))}.forecast-line{color:#69795a;font-size:calc(21 * var(--rpx));line-height:1.7;margin-top:calc(12 * var(--rpx))}.forecast-footnote{color:#a7ae9c;font-size:calc(18 * var(--rpx));line-height:1.6;margin-top:calc(5 * var(--rpx))}.calendar-day.unavailable{color:#c5cbbd}.calendar-tip{font-size:calc(18 * var(--rpx));color:#a0a98f;margin-top:calc(15 * var(--rpx));text-align:center}.backfill-card{background:#edf2e2;padding:calc(24 * var(--rpx));border:calc(1 * var(--rpx)) solid #e0e8d2;border-radius:calc(22 * var(--rpx));margin-bottom:calc(22 * var(--rpx))}.backfill-card .subtle{margin:calc(12 * var(--rpx)) 0 calc(20 * var(--rpx))}.compact-button{height:calc(86 * var(--rpx));font-size:calc(24 * var(--rpx));margin-top:calc(22 * var(--rpx))}.goal-setting{display:flex;gap:calc(12 * var(--rpx));align-items:center;justify-content:space-between;background:#edf2e3;padding:calc(24 * var(--rpx));border-radius:calc(20 * var(--rpx));margin:0 0 calc(24 * var(--rpx))}.goal-setting .section-title{font-size:calc(24 * var(--rpx))}.goal-setting .subtle{font-size:calc(18 * var(--rpx));margin-top:calc(8 * var(--rpx));display:block}.backup-card{background:#fff;border:calc(1 * var(--rpx)) solid #e9ede1;border-radius:calc(24 * var(--rpx));padding:calc(26 * var(--rpx));margin-top:calc(32 * var(--rpx))}.backup-tag{font-size:calc(18 * var(--rpx));color:#a2ae90}.backup-help{font-size:calc(20 * var(--rpx));margin:calc(16 * var(--rpx)) 0 calc(20 * var(--rpx))}.backup-buttons{display:flex;gap:calc(15 * var(--rpx))}.secondary-button{flex:1;min-width:0;background:#eef3e3;color:#61764c;border:calc(1 * var(--rpx)) solid #e0e8d3;border-radius:calc(12 * var(--rpx));padding:calc(18 * var(--rpx)) calc(10 * var(--rpx));text-align:center;font-size:calc(22 * var(--rpx))}.backup-panel{margin-top:calc(26 * var(--rpx));border-top:calc(1 * var(--rpx)) solid #edf0e6;padding-top:calc(24 * var(--rpx))}.backup-panel .form-label{margin:0;font-size:calc(21 * var(--rpx))}.backup-panel .section-row{gap:calc(12 * var(--rpx))}.backup-input{box-sizing:border-box;background:#f6f8f0;border:calc(1 * var(--rpx)) solid #e5ebda;border-radius:calc(14 * var(--rpx));padding:calc(18 * var(--rpx));font-size:calc(20 * var(--rpx));line-height:1.7;width:100%;height:calc(260 * var(--rpx));margin-top:calc(18 * var(--rpx));word-break:break-all;font-family:monospace}.backup-output{box-sizing:border-box;background:#f6f8f0;border:calc(1 * var(--rpx)) solid #e5ebda;border-radius:calc(14 * var(--rpx));padding:calc(18 * var(--rpx));font-size:calc(19 * var(--rpx));line-height:1.6;width:100%;height:calc(240 * var(--rpx));margin-top:calc(18 * var(--rpx));word-break:break-all;white-space:pre-wrap;font-family:monospace}.restore-warning{font-size:calc(19 * var(--rpx));color:#a39370;line-height:1.8;margin-top:calc(16 * var(--rpx))}.undo-restore{display:block;margin-top:calc(22 * var(--rpx));font-size:calc(20 * var(--rpx))}
.big-number.amount-compact{font-size:calc(64 * var(--rpx));letter-spacing:calc(-2 * var(--rpx))}.metric-value.metric-compact{font-size:calc(32 * var(--rpx));letter-spacing:calc(-1 * var(--rpx))}.balance-top>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:calc(16 * var(--rpx))}.status-pill{flex-shrink:0}

*{box-sizing:border-box}html{background:#e8ebe2}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#252724}button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:2px solid #91aa68;outline-offset:3px}button:active:not(:disabled){filter:brightness(.97)}.preview-layout{display:flex;max-width:1000px;margin:0 auto;min-height:100vh;align-items:flex-start;justify-content:center;gap:100px}.desktop-note{width:310px;padding-top:105px;position:sticky;top:0;flex-shrink:0;color:#535f46}.preview-kicker{font-size:11px;letter-spacing:3px;color:#8b977c}.desktop-note h1{font-size:56px;line-height:1.25;letter-spacing:-3px;margin:24px 0;font-weight:650}.desktop-note h1 span{color:#879e61}.desktop-note p{font-size:14px;line-height:1.9;color:#909a82}.desktop-note .preview-line{height:1px;width:40px;background:#b6c49f;margin:32px 0}.example-button{background:#2f3b2d;color:#e5f2ce;padding:14px 21px;border-radius:12px;font-size:13px;margin:12px 0}.platform-note{font-size:11px!important;margin-top:28px}.phone-frame{width:430px;max-width:100vw;background:#f7f7f2;min-height:100vh;position:relative;box-shadow:0 0 70px #3d4d2510}#app{font-size:calc(28 * var(--rpx))}.phone-frame .bottom-nav{left:auto;right:auto;width:430px;max-width:100vw}.browser-picker{position:relative}.browser-date{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}input{outline:none;min-width:0;border:0;background:transparent}input::placeholder{color:#adb49f}.demo-banner{display:none;align-items:center;justify-content:space-between;padding:11px 20px;background:#e6edce;color:#68794c;font-size:11px;line-height:1.6}.demo-banner button{background:none;color:#68794c;text-decoration:underline;padding:0}.demo-mode .demo-banner{display:flex}.demo-mode #example-button{opacity:.5}.toast{position:fixed;left:50%;bottom:110px;transform:translate(-50%,10px);padding:12px 19px;color:#fff;background:#2d382de8;box-shadow:0 5px 30px #0001;border-radius:12px;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #e4e8d8;border-radius:22px;padding:28px;max-width:340px;width:calc(100vw - 40px);background:#fafbf5;box-shadow:0 20px 80px #1a281b30;color:#394532}dialog::backdrop{background:#1c29194d;backdrop-filter:blur(3px)}dialog h3{margin:0 0 14px;font-size:19px}dialog p{color:#959f86;font-size:14px;line-height:1.8;margin:0 0 24px}.dialog-actions{display:flex;gap:12px}.dialog-actions button{padding:13px 18px;border-radius:12px;flex:1;font-size:14px;background:#e9eddf;color:#69775a}.dialog-actions #dialog-confirm{background:#d7eaa9;color:#4c6334}@media(max-width:850px){.desktop-note{display:none}.preview-layout{gap:0}.phone-frame{box-shadow:none}}@media(min-width:851px){.toast{left:calc(50% + 205px)}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.phone-frame .bottom-nav{left:calc(50% - 10px);right:auto}@media(max-width:850px){.phone-frame .bottom-nav{left:50%;transform:translateX(-50%)}}.desktop-note h1{font-size:47px;letter-spacing:-2px}
.desktop-note h1{font-size:42px}
.browser-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.backup-output{overflow:auto}.backup-input{resize:vertical;outline:none}.backup-input:focus-visible,.browser-select:focus-visible{outline:2px solid #91aa68;outline-offset:3px}

.site-toolbar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #e9edde;background:#f0f4e6;font-size:11px;color:#83916e;gap:10px}.connection-status{display:flex;align-items:center;gap:6px;white-space:nowrap}.connection-status i{display:block;width:5px;height:5px;background:#92a875;border-radius:50%}.toolbar-actions{display:flex;align-items:center;gap:17px}.toolbar-actions button{background:none;color:#6f7f58;padding:7px 0;font-size:11px}.desktop-actions{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.desktop-install{background:none;color:#7c8c67;font-size:12px;padding:9px 0}.desktop-qr{display:flex;align-items:center;gap:16px;border-top:1px solid #d9e1cd;padding-top:24px;margin-top:29px}.desktop-qr img{width:94px;height:94px;border-radius:12px;background:#f7f7f2;padding:5px}.desktop-qr strong{font-size:13px;color:#5a6b48;font-weight:600}.desktop-qr p{font-size:11px;margin:9px 0 0;line-height:1.8}.platform-note{font-size:10px!important;line-height:1.8!important}.help-dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.help-dialog-heading button{background:none;font-size:27px;line-height:1;color:#929f81;padding:0 3px}.help-primary{width:100%;padding:13px;background:#d7eaa9;color:#4c6334;border-radius:12px;font-size:14px;margin:6px 0 18px}.help-primary[hidden]{display:none}.install-small{font-size:11px!important;color:#9aa58d!important;line-height:1.9!important;margin-bottom:16px!important}.help-local-data{background:#edf2e3;padding:13px;border-radius:12px;font-size:11px;line-height:1.9;color:#8c9879}#install-instructions{white-space:pre-line;font-size:14px;color:#71815d;line-height:1.9}#install-dialog{max-width:370px}.web-backup-files{display:flex;gap:calc(15 * var(--rpx));margin-top:calc(15 * var(--rpx))}.file-backup-button{font-size:calc(20 * var(--rpx));background:#f8f9f3;border:1px dashed #dfe7d0;color:#899a71;border-radius:calc(12 * var(--rpx));flex:1;min-width:0;padding:calc(16 * var(--rpx)) calc(8 * var(--rpx));text-align:center}.mobile-example{display:none}.welcome .mobile-example{display:block;font-size:calc(21 * var(--rpx));color:#7a8b61;text-align:center;margin:calc(24 * var(--rpx)) auto 0;background:none}.desktop-note{padding-top:78px}.bottom-nav{padding-bottom:calc(20 * var(--rpx) + env(safe-area-inset-bottom,0px))}.skip-link{position:fixed;left:15px;top:-80px;background:#2f392e;color:#d7eea4;padding:12px 18px;border-radius:10px;z-index:100}.skip-link:focus{top:15px}.browser-select:focus-visible,.browser-date:focus-visible{opacity:1;outline:2px solid #91aa68;outline-offset:2px}.form-input,.money-input{font-size:max(16px,calc(27 * var(--rpx)))}.money-input{font-size:max(20px,calc(40 * var(--rpx)))}.backup-input{font-size:16px}.backup-output{user-select:text;-webkit-user-select:text}.bottom-nav button:focus-visible{outline-offset:4px}.metric-label{flex-wrap:wrap}.toast{max-width:calc(100vw - 32px);white-space:normal;text-align:center;line-height:1.7}.phone-frame .bottom-nav{padding-bottom:max(calc(20 * var(--rpx)),env(safe-area-inset-bottom,0px))}@media(max-width:850px){html{background:#f7f7f2}.phone-frame{width:min(100vw,430px)}.site-toolbar{padding:0 max(18px,env(safe-area-inset-left,0px));}}@media(display-mode:standalone){.site-toolbar [data-install]{display:none}.site-toolbar{padding-top:env(safe-area-inset-top,0px);height:calc(44px + env(safe-area-inset-top,0px))}}@media(min-width:851px){.welcome .mobile-example{display:none}}
/* Two views share one training ledger; the selected view is a local preference. */
.mode-switch{display:flex;gap:4px;padding:4px;margin:0 0 calc(22 * var(--rpx));background:#e9eddf;border:1px solid #e1e6d7;border-radius:15px}.mode-option{flex:1;min-width:0;padding:11px 6px;border-radius:11px;font-size:13px;font-weight:500;color:#879275;transition:background .15s,color .15s}.mode-option.is-active{background:#fff;color:#3b4c2d;box-shadow:0 2px 6px #384c2210}.mode-option:focus-visible{outline:2px solid #91aa68;outline-offset:1px}.cost-card .amount-unit{font-size:calc(21 * var(--rpx));margin-left:calc(12 * var(--rpx));white-space:nowrap}.cost-card .big-number{font-size:calc(90 * var(--rpx));letter-spacing:calc(-4 * var(--rpx))}.cost-card .big-number.amount-compact{font-size:calc(60 * var(--rpx));letter-spacing:calc(-2 * var(--rpx))}.cost-card .hero-bottom{gap:10px;line-height:1.7}.cost-card .mini-spark{flex-shrink:0}
