:root{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Yu Gothic,sans-serif;color:#17231e;background:#f3f0e8;font-synthesis:none;--ink:#10231c;--paper:#f3f0e8;--cream:#fffaf0;--gold:#e9c46a;--rust:#d97745}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;overflow-x:hidden;touch-action:pan-y}body{margin:0;min-width:0;background:var(--paper)}button,input,select{font:inherit;touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;padding-bottom:150px}.hero{background:var(--ink);color:#fffaf0;border-radius:0 0 34px 34px;padding:calc(28px + env(safe-area-inset-top)) 22px 28px;box-shadow:0 18px 50px #10231c2e;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:210px;height:210px;border:1px solid rgba(233,196,106,.16);border-radius:50%;right:-90px;top:-80px;box-shadow:0 0 0 28px #e9c46a0a,0 0 0 58px #e9c46a08}.eyebrow,.section-heading small,.backup-card small,.sheet-title small{font-size:10px;letter-spacing:.18em;font-weight:700;color:#e9c46a}.status-dot{width:7px;height:7px;background:#77c499;border-radius:50%;display:inline-block;margin-right:7px;box-shadow:0 0 0 4px #77c4991f}.month-switcher{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:25px}.month-switcher button{width:38px;height:38px;border:1px solid rgba(255,255,255,.16);color:#fff;border-radius:50%;background:#ffffff0d;font-size:26px;line-height:1}.month-switcher div{text-align:center;min-width:112px}.month-switcher span{display:block;font-size:15px;font-weight:600;letter-spacing:.08em}.month-switcher small{display:block;opacity:.54;margin-top:3px;font-size:10px}.total-label{text-align:center;font-size:12px;opacity:.58;margin:27px 0 4px}.hero h1{text-align:center;font-size:42px;margin:0;letter-spacing:-.045em}.hero-meta{display:flex;justify-content:center;gap:10px;margin-top:13px}.hero-meta span{background:#ffffff12;border:1px solid rgba(255,255,255,.08);padding:5px 10px;border-radius:999px;font-size:10px;opacity:.8}main{max-width:620px;margin:0 auto;padding:25px 18px}.tab-content{min-height:420px}.tab-panel{animation:tab-in .2s ease-out}@keyframes tab-in{0%{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}.section-block{margin-bottom:30px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:0 3px 12px}.section-heading h2,.backup-card h2,.sheet h2{margin:2px 0 0;font-size:20px;letter-spacing:-.03em}.section-heading>span{font-size:11px;color:#6b756f}.calendar-card{width:100%;overflow:hidden;background:#fffaf0e6;border:1px solid rgba(16,35,28,.07);border-radius:21px;padding:12px 10px 10px;box-shadow:0 8px 30px #2d39300d}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{margin-bottom:5px}.calendar-weekdays span{text-align:center;color:#7a837e;font-size:9px;font-weight:700}.calendar-weekdays span:first-child{color:#bb6046}.calendar-weekdays span:last-child{color:#557c70}.calendar-grid{gap:3px}.calendar-empty,.calendar-day{min-width:0;min-height:64px}.calendar-day{border:1px solid transparent;border-radius:10px;padding:5px 3px;background:#f4f0e7;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:space-between}.calendar-day b{font-size:11px;line-height:1}.calendar-day small{width:100%;overflow:hidden;text-overflow:ellipsis;color:#939a96;font-size:8px;font-weight:700;white-space:nowrap;text-align:center}.day-bar{display:block;width:100%;height:5px;border-radius:5px;background:#10231c14;overflow:hidden}.day-bar i{display:block;min-width:2px;height:100%;border-radius:inherit;background:var(--rust)}.calendar-day:not(.has-spend) .day-bar i{min-width:0}.calendar-day.has-spend{background:#edf2ed}.calendar-day.has-spend small{color:#3b6757}.calendar-day.is-today{border-color:#d97745}.calendar-day.is-selected{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 5px 12px #10231c2e}.calendar-day.is-selected small{color:#e9c46a}.calendar-day.is-selected .day-bar{background:#ffffff24}.calendar-day.is-selected .day-bar i{background:var(--gold)}.calendar-scale{display:flex;align-items:center;gap:7px;margin:9px 3px 0;color:#7a837e;font-size:8px;font-weight:700}.calendar-scale i{flex:1;border-top:1px dashed #c8c8bf}.calendar-scale span:last-child{color:#4d5e56}.calendar-footer{min-height:32px;margin-top:9px;border-top:1px solid rgba(16,35,28,.06);padding:9px 3px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6f7973;font-size:9px}.calendar-footer b{color:var(--ink);font-size:11px}.calendar-footer button{flex:0 0 auto;border:0;border-radius:8px;background:#e9e5dc;color:#6b4b3d;padding:6px 8px;font-size:9px;font-weight:700}.category-card,.transaction-list{background:#fffaf0db;border:1px solid rgba(16,35,28,.07);border-radius:21px;padding:7px 15px;box-shadow:0 8px 30px #2d39300d}.category-group{border-bottom:1px solid rgba(16,35,28,.06)}.category-group:last-child{border-bottom:0}.category-row{width:100%;color:inherit;text-align:left;background:transparent;display:flex;gap:12px;align-items:center;padding:11px 0;border:0}.category-row.is-active{margin:0 -8px;width:calc(100% + 16px);padding:11px 8px;border-radius:13px;background:#e8eee9;border-bottom-color:transparent}.category-row.is-active .category-icon{background:var(--ink);color:#fff}.category-row.is-active .bar i{background:#3f8068}.category-chevron{color:#8a938e;font-size:22px;line-height:1;transition:transform .18s ease}.category-row.is-active .category-chevron{transform:rotate(90deg);color:#3f8068}.category-transactions{margin:2px -7px 10px;padding:0 10px;border:0;border-radius:14px;background:#f1eee6;box-shadow:none;animation:category-open .18s ease-out}.category-transactions .transaction-row{padding:11px 0}.category-transactions .transaction-main b{font-size:12px}@keyframes category-open{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.category-icon{flex:0 0 34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:700;background:#e8d8b2}.tone-1{background:#d5e6dc}.tone-2{background:#f1c9b2}.tone-3{background:#d9d9ec}.tone-4{background:#e6d4dd}.category-detail{flex:1;min-width:0}.category-detail>div:first-child{display:flex;justify-content:space-between;font-size:12px}.category-detail span{font-weight:600}.bar{height:4px;background:#e8e5dc;border-radius:4px;margin-top:7px;overflow:hidden}.bar i{display:block;height:100%;background:var(--rust);border-radius:4px}.transaction-list{padding:0 15px}.transaction-row{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:10px;padding:14px 0;border-bottom:1px solid rgba(16,35,28,.07)}.transaction-row:last-child{border-bottom:0}.date-badge{border-right:1px solid #dedbd1;text-align:left;display:flex;flex-direction:column;justify-content:center}.date-badge b{font-size:18px;line-height:1}.date-badge span{font-size:9px;color:#758079;margin-top:4px}.transaction-main{width:100%;min-width:0;border:0;background:none;padding:0;color:inherit;display:flex;text-align:left;align-items:center;justify-content:space-between;gap:10px}.transaction-main>span{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}.transaction-main b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-main small{font-size:10px;color:#7a837e;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-main strong{flex:0 0 auto;font-size:14px;white-space:nowrap}.edit-strip{grid-column:2;min-width:0;display:flex;gap:6px;margin-top:10px}.edit-strip select,.edit-strip button{border:1px solid #d8d6cd;border-radius:9px;background:#fff;padding:7px;font-size:11px}.edit-strip select{flex:1;min-width:0}.edit-strip button{background:var(--ink);color:#fff}.edit-strip .danger{background:#9c4c3d}.text-button{border:0;background:none;color:#a35235;font-size:11px;font-weight:700}.empty{color:#7a837e;text-align:center;font-size:12px;padding:20px 10px}.backup-card{width:100%;min-width:0;background:#dfd3b6;border-radius:22px;padding:19px;display:flex;align-items:center;justify-content:space-between;gap:16px}.backup-card>div:first-child{flex:1;min-width:0}.backup-card small{color:#8a553d}.backup-card h2{font-size:17px}.backup-card p{font-size:10px;margin:5px 0 0;color:#5f635d;overflow-wrap:anywhere}.backup-card>div:last-child{display:flex;flex:0 0 auto;gap:6px}.backup-card button{border:0;background:#fffaf0;color:var(--ink);border-radius:9px;padding:9px 10px;font-size:10px;font-weight:700}.lock-button{display:block;margin:18px auto 0;border:0;background:none;color:#7a837e;font-size:10px;text-decoration:underline}.unlock-shell{min-height:100vh;display:grid;place-items:center;padding:28px 20px;background:radial-gradient(circle at top,#234438 0,#10231c 46%,#091510)}.unlock-card{width:min(100%,420px);background:var(--cream);border-radius:28px;padding:30px 24px;box-shadow:0 24px 80px #00000059;text-align:center}.unlock-mark{width:56px;height:56px;margin:0 auto 18px;border-radius:18px;display:grid;place-items:center;background:#dfd3b6;color:#75462f;font-weight:800}.unlock-card small{font-size:9px;letter-spacing:.18em;color:#a35235;font-weight:800}.unlock-card h1{font-size:28px;margin:5px 0 8px}.unlock-card p{font-size:12px;line-height:1.7;color:#65706a;margin:0 0 22px}.unlock-card label{display:flex;flex-direction:column;gap:7px;text-align:left;font-size:11px;font-weight:700}.unlock-card input{width:100%;border:1px solid #d8d4ca;border-radius:12px;padding:13px;background:#fff;font-size:16px}.unlock-card .primary{width:100%;border:0;border-radius:13px;background:var(--ink);color:#fff;padding:14px;font-weight:700;margin-top:14px}.unlock-card em{display:block;margin-top:16px;font-size:9px;line-height:1.6;color:#808984;font-style:normal}.unlock-error{display:block;color:#9c4c3d;font-size:11px;text-align:left;margin-top:7px}.bottom-nav{position:fixed;z-index:6;left:50%;bottom:0;transform:translate(-50%);width:min(100%,660px);height:calc(68px + env(safe-area-inset-bottom));padding:7px 16px env(safe-area-inset-bottom);display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#fffaf0f0;border:1px solid rgba(16,35,28,.08);border-bottom:0;border-radius:23px 23px 0 0;box-shadow:0 -8px 30px #10231c1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.bottom-nav button{border:0;border-radius:15px;background:transparent;color:#7a837e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.bottom-nav button span{font-size:22px;line-height:1}.bottom-nav button b{font-size:10px}.bottom-nav button.is-active{background:#e8eee9;color:var(--ink)}.bottom-nav button.is-active span{color:var(--rust)}.fab{position:fixed;z-index:7;bottom:calc(82px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--rust);color:#fff;border:0;border-radius:999px;height:48px;padding:0 17px;box-shadow:0 11px 25px #79442b4d;font-size:22px;display:flex;align-items:center;gap:7px}.fab span{font-size:11px;font-weight:700}.swipe-hint{margin:18px 0 0;text-align:center;color:#8a938e;font-size:10px}.error-card{background:#ffe2d7;border:1px solid #e8b7a4;border-radius:16px;padding:14px;margin-bottom:20px;display:flex;flex-direction:column;gap:4px;font-size:12px}.error-card span{color:#743c2c}.error-card button{align-self:start;margin-top:6px;border:0;border-radius:7px;padding:6px 10px;background:#743c2c;color:#fff}.modal-backdrop{position:fixed;inset:0;z-index:10;background:#05100c8c;display:flex;align-items:end;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet{background:var(--cream);width:100%;max-width:620px;margin:0 auto;border-radius:28px 28px 0 0;padding:10px 21px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px #0003}.sheet-handle{width:38px;height:4px;border-radius:4px;background:#d4d0c6;margin:0 auto 16px}.sheet-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.sheet-title button{border:0;background:#e9e5dc;border-radius:50%;width:32px;height:32px;font-size:20px}.sheet label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;margin-bottom:12px}.sheet input,.sheet select{width:100%;border:1px solid #d8d4ca;background:#fff;border-radius:12px;padding:12px;color:var(--ink);font-size:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet .primary{width:100%;border:0;border-radius:13px;background:var(--ink);color:#fff;padding:14px;font-weight:700;margin-top:4px}@media(min-width:700px){.hero{max-width:660px;margin:20px auto 0;border-radius:34px;padding-top:30px}.app-shell{padding-top:1px}.fab{left:auto;right:40px;transform:none}}
