: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}body{margin:0;min-width:320px;background:var(--paper)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;padding-bottom:110px}.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}.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}.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-row{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(16,35,28,.06)}.category-row:last-child{border:0}.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 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{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-direction:column;min-width:0}.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}.transaction-main strong{font-size:14px;white-space:nowrap}.edit-strip{grid-column:2;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}.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{background:#dfd3b6;border-radius:22px;padding:19px;display:flex;align-items:center;justify-content:space-between;gap:16px}.backup-card small{color:#8a553d}.backup-card h2{font-size:17px}.backup-card p{font-size:10px;margin:5px 0 0;color:#5f635d}.backup-card>div:last-child{display:flex;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}.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}.fab{position:fixed;z-index:5;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--rust);color:#fff;border:0;border-radius:999px;height:54px;padding:0 21px;box-shadow:0 11px 25px #79442b4d;font-size:25px;display:flex;align-items:center;gap:8px}.fab span{font-size:12px;font-weight:700}.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:14px}.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}}
