:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,sans-serif;color-scheme:light;font-synthesis:none;-webkit-tap-highlight-color:transparent;--paper:#f5f7f5;--surface:#fff;--ink:#22392c;--dim:#69756c;--line:#dfe7e0;--accent:#2c6951;--accent-ink:#fff;--wash:#e9f1eb;--radius:20px;--danger:#a72b2b}:root[data-theme=warm]{--paper:#fff8f0;--surface:#fffdf9;--ink:#443b30;--dim:#847564;--line:#e9ddcd;--accent:#af542f;--accent-ink:#fffaf3;--wash:#fbe7d3;--radius:26px}:root[data-theme=data]{--paper:#fafaf8;--surface:#fff;--ink:#24282d;--dim:#6a707a;--line:#dddfe1;--accent:#343b46;--accent-ink:#fff;--wash:#eceff2;--radius:10px}:root[data-theme=tech]{--paper:#f2f6ff;--surface:#fff;--ink:#14264c;--dim:#596d91;--line:#d7e3f6;--accent:#145de3;--accent-ink:#fff;--wash:#e8f0ff;--radius:16px;--tech-hero:#0d2c61;--tech-highlight:#155bc7;--tech-outline:#276fe0}:root[data-color-scheme=dark]{color-scheme:dark;--paper:#171e1a;--surface:#222c25;--ink:#edf5ee;--dim:#a0b5a7;--line:#354439;--accent:#8fcea9;--accent-ink:#142a1b;--wash:#293e2e;--danger:#ffb4ac}:root[data-color-scheme=dark][data-theme=warm]{--paper:#241e19;--surface:#30271f;--ink:#fff2dd;--dim:#c3b29e;--line:#4b3d32;--accent:#edaa7e;--accent-ink:#362116;--wash:#473426}:root[data-color-scheme=dark][data-theme=data]{--paper:#191a1c;--surface:#252629;--ink:#eeeef1;--dim:#aab0ba;--line:#404248;--accent:#e3e6eb;--accent-ink:#1c2026;--wash:#30333a}:root[data-color-scheme=dark][data-theme=tech]{--paper:#080f20;--surface:#101d34;--ink:#eaf2ff;--dim:#9caecb;--line:#293a57;--accent:#75b5ff;--accent-ink:#061328;--wash:#172f50;--tech-hero:#0b2346;--tech-highlight:#164d87;--tech-outline:#315f93}*{box-sizing:border-box;touch-action:manipulation}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer}button:disabled{cursor:default;opacity:.5}button:active:not(:disabled){opacity:.75}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,select{color:var(--ink)}input[type=date],input[type=time],select{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:42px;padding:5px 8px;font-size:16px}h1,h2,h3,h4,p{margin:0}.app-shell{width:100%;max-width:520px;margin:auto;padding:calc(env(safe-area-inset-top) + 25px) 23px calc(112px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.app-header h1{font-size:28px;font-weight:650;letter-spacing:-1px}.app-header p{margin-top:7px;color:var(--dim);font-size:12px}.icon-button{width:44px;min-width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center}.connection-strip{display:flex;align-items:center;gap:7px;color:var(--dim);font-size:11px;min-height:32px;margin:0 0 8px}.connection-strip button{color:var(--accent);margin-left:auto;font-size:11px;min-height:32px}.month-control{display:flex;align-items:center;justify-content:space-between;margin:4px 0 17px}.month-control h2{font-size:14px;font-weight:550}.month-control .icon-button{background:transparent;width:36px;min-width:36px;height:36px}.overview{background:var(--surface);border-radius:var(--radius);padding:24px}:root[data-theme=calm] .overview{background:var(--accent);color:var(--accent-ink)}.eyebrow{color:var(--dim);font-size:12px;margin-bottom:12px}.big-amount{font-size:clamp(30px,8vw,42px);line-height:1.2;letter-spacing:-1.6px;font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.big-amount small{font-size:21px;margin-right:5px;letter-spacing:0}.mini-totals{display:flex;justify-content:space-between;gap:15px;margin-top:23px;padding-top:19px;border-top:1px solid var(--line);flex-wrap:wrap}.mini-totals span{color:var(--dim);font-size:11px;display:block}.mini-totals strong{display:block;font-size:17px;font-weight:500;margin-top:7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}:root[data-theme=calm] .overview .eyebrow,:root[data-theme=calm] .overview .mini-totals span{color:var(--accent-ink);opacity:.8}:root[data-theme=calm] .overview .mini-totals{border-color:color-mix(in srgb,var(--accent-ink) 22%,transparent)}.primary,.secondary{min-height:49px;border-radius:13px;padding:12px 17px;font-size:14px;font-weight:550;display:flex;justify-content:center;align-items:center;gap:8px;text-align:center}.primary{background:var(--accent);color:var(--accent-ink);width:100%}.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.add-main{margin-top:14px}:root[data-theme=calm] .add-main{background:var(--surface);color:var(--accent);border:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:26px 0 14px}.section-top h3{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.muted{color:var(--dim);font-size:11px}.text-button{color:var(--accent);display:flex;align-items:center;gap:3px;font-size:12px;min-height:34px;padding:0}.day-group{margin-bottom:25px}.day-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 7px;color:var(--dim)}.day-heading h4,.day-heading>span{font-size:11px;font-weight:400}.entry{padding:8px 0}.entry-row{display:flex;align-items:center;gap:2px}.entry-main{display:flex;align-items:center;gap:11px;flex:1;min-width:0;text-align:left;padding:4px 0;min-height:48px}.entry-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--wash);color:var(--accent);flex-shrink:0}.entry-copy{flex:1;min-width:0}.entry-title{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere}.entry-note{display:block;color:var(--dim);font-size:11px;margin-top:5px}.entry-value{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;flex-shrink:0}.is-income{color:var(--accent)}.delete-button{width:32px;min-width:32px;min-height:44px;display:grid;place-items:center;color:var(--dim)}.reminder-strip{display:flex;align-items:center;gap:9px;width:100%;color:var(--dim);font-size:12px;border-top:1px solid var(--line);padding:17px 0;margin-top:20px;text-align:left}.reminder-strip span{flex:1}.empty-state{display:flex;align-items:center;flex-direction:column;text-align:center;padding:32px 10px;gap:13px;color:var(--dim)}.empty-state h3{font-size:16px;color:var(--ink);font-weight:500}.empty-state p{font-size:13px;line-height:1.8}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:520px;z-index:10;display:flex;justify-content:space-around;border-top:1px solid var(--line);background:var(--surface);padding:9px 10px calc(12px + env(safe-area-inset-bottom))}.bottom-nav button{min-width:76px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;color:var(--dim)}.bottom-nav button.active{color:var(--accent);font-weight:550}.warm-heading{display:none}:root[data-theme=warm] .app-header h1{font-family:Songti SC,STSong,serif;font-size:31px;letter-spacing:2px}:root[data-theme=warm] .warm-heading{display:block;font-size:26px;line-height:1.5;font-weight:500;margin:3px 0 22px}:root[data-theme=warm] .warm-heading span{color:var(--accent)}:root[data-theme=warm] .overview{background:var(--wash)}:root[data-theme=warm] .primary{border-radius:25px}:root[data-theme=warm] .warm-add{margin-top:22px}:root[data-theme=warm] .entry-icon{border:1px solid var(--line);background:transparent;border-radius:50%}:root[data-theme=data] .app-header h1{font-size:23px;letter-spacing:-.5px}:root[data-theme=data] .overview{padding:7px 0 24px;background:none;border-bottom:1px solid var(--line);border-radius:0}:root[data-theme=data] .mini-totals{border:0;padding:0}:root[data-theme=data] .entry{border-bottom:1px solid var(--line);padding:9px 0}:root[data-theme=data] .entry-icon{width:28px;background:none}:root[data-theme=data] .entry-note{display:none}:root[data-theme=tech] .app-header h1{letter-spacing:1px}:root[data-theme=tech] .overview{color:#fff;border:1px solid var(--tech-outline);background:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px),linear-gradient(120deg,var(--tech-hero),var(--tech-highlight));background-size:24px 24px,24px 24px,100% 100%;box-shadow:0 8px 24px #071d4814}:root[data-theme=tech] .overview .eyebrow,:root[data-theme=tech] .overview .mini-totals span{color:#d5e5ff}:root[data-theme=tech] .overview .mini-totals{border-color:#fff3}:root[data-theme=tech] .big-amount,:root[data-theme=tech] .mini-totals strong{font-family:SF Mono,Menlo,Consolas,monospace;letter-spacing:-1px}:root[data-theme=tech] .primary{border-radius:10px}:root[data-theme=tech] .entry-icon{border:1px solid var(--line);border-radius:10px}:root[data-theme=tech] .bottom-nav button{border:1px solid transparent;border-radius:11px}:root[data-theme=tech] .bottom-nav button.active{background:var(--wash);border-color:var(--line)}:root[data-theme=tech] .theme-option.selected{box-shadow:inset 3px 0 0 var(--accent)}.bar-row{display:grid;grid-template-columns:34px 1fr 40px;gap:10px;align-items:center;font-size:11px;margin:13px 0}.bar-row>span:last-child{color:var(--dim);text-align:right;font-variant-numeric:tabular-nums}.track{height:7px;background:var(--wash);border-radius:3px;overflow:hidden}.track b{height:100%;display:block;background:var(--accent);border-radius:3px}.stats-list{padding:0 0 5px}.stats-row{padding:13px 0;border-bottom:1px solid var(--line)}.stats-row>div:first-child{display:flex;gap:9px;align-items:center;font-size:13px}.stats-row strong{margin-left:auto;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.stats-row .bar-row{grid-template-columns:1fr 45px;margin:12px 0 0}.page-heading{margin:24px 0 12px}.page-heading h2{font-size:23px;font-weight:600}.page-heading p{font-size:12px;color:var(--dim);margin-top:8px}.theme-options{display:grid;gap:10px}.theme-option{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);padding:13px 15px;text-align:left}.theme-option.selected{border-color:var(--accent);background:var(--wash)}.theme-option strong{font-size:14px;font-weight:550;display:block}.theme-option small{display:block;font-size:11px;color:var(--dim);margin-top:5px}.theme-mini{width:40px;height:45px;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:7px;flex-shrink:0}.theme-mini b{height:15px;background:var(--preview-color);border-radius:3px}.theme-mini i{height:4px;background:var(--line);border-radius:2px}.theme-mini i:last-child{width:70%}.theme-check{margin-left:auto;color:var(--accent)}.color-mode-settings{margin-top:18px}.appearance-label{font-size:12px;font-weight:550;margin-bottom:9px}.color-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.color-mode-options button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid transparent;border-radius:9px;font-size:12px;color:var(--dim);padding:8px 4px}.color-mode-options button.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:550}.color-mode-settings .group-footnote{margin-top:8px}.settings-group{padding:17px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.setting-row:first-child{padding-top:1px}.setting-row:last-child{border-bottom:0;padding-bottom:1px}.setting-row strong{font-weight:500}.setting-row>div{min-width:0}.setting-row small{display:block;font-size:11px;color:var(--dim);line-height:1.6;margin-top:6px}.setting-row select{max-width:145px}.setting-row input[type=time]{max-width:128px}.switch-input{appearance:none;width:45px;min-width:45px;height:27px;border-radius:20px;background:var(--line);margin:0;position:relative;cursor:pointer}.switch-input:after{content:"";position:absolute;width:21px;height:21px;border-radius:50%;top:3px;left:3px;background:var(--surface)}.switch-input:checked{background:var(--accent)}.switch-input:checked:after{left:21px}.switch-input:disabled{opacity:.5;cursor:default}.small-button{min-height:38px;padding:8px 13px;font-size:12px;flex-shrink:0}.passkey-row{margin-top:10px}.passkey-row>div{overflow-wrap:anywhere}.group-copy,.group-footnote{font-size:12px;color:var(--dim);line-height:1.8}.group-copy{margin-bottom:17px}.group-footnote{margin-top:13px}.password-label{display:block;font-size:12px;margin:0 0 15px}.password-label input{display:block;width:100%;margin-top:9px;padding:12px;min-height:46px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-size:16px}.button-pair{display:flex;gap:10px;margin-top:15px}.button-pair button{flex:1;min-width:0;font-size:12px;padding:10px}.status-ok{color:var(--accent)}.install-note{display:flex;align-items:flex-start;gap:11px;background:var(--wash);border-radius:14px;padding:16px;margin-top:17px}.install-note>svg{flex-shrink:0}.install-note strong{font-size:13px;font-weight:500}.install-note p{font-size:12px;color:var(--dim);line-height:1.7;margin-top:7px}.storage-button{margin-top:14px}.app-version{text-align:center;font-size:11px;color:var(--dim);line-height:1.8;margin:29px 0 0}.error-box,.error-text{color:var(--danger);font-size:12px;line-height:1.7}.error-box{padding:14px;border:1px solid var(--danger);border-radius:10px;margin-bottom:15px}.error-text{margin:12px 0}.update-strip{display:flex;align-items:center;justify-content:space-between;font-size:12px;background:var(--wash);padding:12px;border-radius:10px;margin-bottom:15px}.update-strip button{color:var(--accent);font-weight:550}.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%);width:calc(100% - 40px);max-width:440px;padding:14px 18px;border-radius:13px;background:var(--ink);color:var(--paper);font-size:12px;line-height:1.6;text-align:center;z-index:30}dialog{border:0;padding:24px;border-radius:24px;color:var(--ink);background:var(--paper);width:calc(100% - 28px);max-width:430px;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#0006}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.dialog-top h2{font-size:22px;font-weight:600}.segments{display:flex;border-radius:12px;padding:4px;background:var(--wash)}.segments button{width:50%;min-height:38px;font-size:14px;border-radius:9px;color:var(--dim)}.segments button.chosen{color:var(--ink);background:var(--surface)}.amount-input{display:flex;align-items:baseline;gap:10px;margin:25px 0 23px;padding-bottom:15px;border-bottom:1px solid var(--line)}.amount-input span{font-size:24px}.amount-input input{width:100%;min-width:0;background:transparent;border:0;font-size:40px;letter-spacing:-1px}.amount-input input::placeholder{color:var(--dim);opacity:.5}.categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.categories button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:67px;border:1px solid var(--line);background:var(--surface);border-radius:12px;font-size:12px}.categories button.chosen{background:var(--wash);color:var(--accent);border-color:var(--accent)}.field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}.field input{width:70%;min-width:0;font-size:16px;text-align:right;background:transparent;border:0;min-height:32px}.field input[type=date]{width:auto;max-width:70%;padding:0}.entry-dialog .amount-input input:focus,.entry-dialog .field input:focus{outline:none}.entry-dialog .amount-input:focus-within,.entry-dialog .field:focus-within{border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}.form-save{margin-top:25px}.form-note{text-align:center;color:var(--dim);font-size:11px;line-height:1.6;margin-top:13px}.confirm-dialog{max-width:360px}.confirm-dialog h2{font-size:20px}.confirm-dialog p{font-size:13px;color:var(--dim);line-height:1.8;margin:15px 0 20px;overflow-wrap:anywhere}.destructive{background:var(--danger);color:var(--paper)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.entry-photos{display:flex;gap:7px;padding:5px 0 2px 51px}.entry-photos button{width:46px;height:46px;padding:0;border-radius:8px;background:var(--wash);color:var(--dim);overflow:hidden;display:grid;place-items:center}.entry-photos img{width:100%;height:100%;object-fit:cover}.photo-field .section-top{margin:21px 0 12px}.photo-field h3{font-size:13px}.photo-grid{display:flex;gap:10px;flex-wrap:wrap}.photo-thumb,.photo-add{width:78px;height:78px;border-radius:12px;background:var(--surface);border:1px solid var(--line);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb button{position:absolute;top:2px;right:2px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--surface)}.photo-add{font-size:11px;color:var(--accent)}.photo-viewer{background:var(--surface);max-width:700px;padding:14px}.photo-viewer .icon-button{margin-left:auto;margin-bottom:12px}.photo-viewer>img{display:block;width:100%;max-height:75dvh;object-fit:contain}@media(min-width:800px){.app-shell{padding-top:42px}}@media(max-width:350px){.app-shell{padding-left:16px;padding-right:16px}.overview{padding:20px}dialog{padding:20px}.entry-main{gap:8px}.entry-value{font-size:13px}.entry-icon{width:33px}.theme-option{padding:12px;gap:10px}}@media(prefers-reduced-motion:no-preference){button{transition:background .18s,opacity .18s,border-color .18s}.switch-input:after{transition:left .16s}}
