@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{color:#26302c;font-synthesis:none;--ink:#26302c;--muted:#7b8580;--line:#d9ded8;--panel:#ffffffab;--green:#637d69;--green-deep:#405b48;--red:#ba7a6e;background:#eef0ec;font-family:Manrope,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit;cursor:pointer}.app-shell{max-width:1240px;margin:auto;padding:30px 48px 70px;position:relative}.topbar{justify-content:space-between;align-items:center;display:flex}.menu-trigger,.profile{backdrop-filter:blur(18px);background:#ffffff80;border:1px solid #ffffffeb;box-shadow:0 8px 25px #4a564c14}.menu-trigger{border-radius:50%;flex-direction:column;justify-content:center;gap:5px;width:52px;height:52px;padding:0 16px;display:flex}.menu-trigger i{background:var(--ink);width:100%;height:1.5px;transition:all .25s;display:block}.menu-trigger.is-open i:first-child{transform:translateY(6px)rotate(45deg)}.menu-trigger.is-open i:nth-child(2){opacity:0}.menu-trigger.is-open i:last-child{transform:translateY(-7px)rotate(-45deg)}.profile{border-radius:25px;align-items:center;gap:9px;min-width:46px;height:46px;padding:4px;transition:all .3s;display:flex}.profile.is-expanded{padding-right:17px}.avatar{color:#fff;background:linear-gradient(135deg,#748d79,#35493b);border-radius:50%;place-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:grid}.profile-label{white-space:nowrap;font-size:13px}.welcome-row{justify-content:space-between;align-items:end;margin:67px 0 34px;display:flex}.eyebrow{letter-spacing:.14em;color:#8b948f;margin:0 0 10px;font:500 10px DM Mono,monospace}.welcome-row h1,.subpage h1{letter-spacing:-.06em;margin:0;font-size:clamp(30px,4vw,52px);font-weight:600;line-height:1.1}.month-pill{color:var(--muted);align-items:center;gap:13px;font-size:12px;display:flex}.month-pill strong{color:var(--ink);font:500 14px DM Mono}.month-pill button,.card-top button,.back-link{color:var(--muted);background:0 0;border:0}.month-pill button{font-size:18px}.action-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.action-card{text-align:left;border:0;border-radius:24px;align-items:center;min-height:174px;padding:28px 30px;transition:transform .25s,box-shadow .25s;display:flex;position:relative}.action-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px #37453a1f}.action-card.income{color:var(--green-deep);background:#dbe5dc}.action-card.expense{color:#80584f;background:#e9d9d4}.action-icon{margin-right:24px;font-size:47px;font-weight:300;line-height:1}.action-text{flex-direction:column;gap:7px;display:flex}.action-text small{letter-spacing:.12em;opacity:.64;font:500 10px DM Mono}.action-text strong{letter-spacing:-.04em;font-size:22px;font-weight:600}.action-arrow{font-size:20px;position:absolute;top:26px;right:28px}.dashboard-grid{grid-template-columns:.92fr 1.08fr;gap:18px;margin-top:18px;display:grid}.balance-card,.category-card,.recent-card,.all-transactions,.month-summary{background:var(--panel);border:1px solid #fffc;border-radius:22px;padding:24px 26px;box-shadow:0 7px 25px #414b420b}.card-top{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.card-top button{font-size:11px}.live-dot{color:var(--green);font:10px DM Mono}.balance{letter-spacing:-.08em;margin:24px 0 22px;font:500 clamp(31px,4vw,45px) DM Mono;display:block}.balance-breakdown{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:12px;padding-top:16px;display:grid}.balance-breakdown span{color:var(--muted);font-size:11px}.balance-breakdown small,.balance-breakdown b{display:block}.balance-breakdown b{margin-top:6px;font:500 13px DM Mono}.positive{color:#66846d}.negative{color:#b87066}.donut-layout{grid-template-columns:47% 53%;align-items:center;margin-top:17px;display:grid}.donut-wrap{width:176px;height:176px;margin:auto;position:relative}.donut{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.donut circle{cursor:pointer;transition:opacity .2s,stroke-width .2s}.donut circle:hover{opacity:.78;stroke-width:8px}.donut-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.donut-center strong{font:500 18px DM Mono}.donut-center small{color:var(--muted);margin-top:5px;font-size:10px}.donut-info{padding-left:12px}.hover-detail small{color:#9ca69e;letter-spacing:.1em;font:10px DM Mono;display:block}.hover-detail strong{letter-spacing:-.05em;margin:7px 0;font-size:20px;display:block}.hover-detail b{color:var(--ink);font:500 13px DM Mono}.hover-detail.muted strong{color:#758078;font-size:16px}.mini-legend{color:var(--muted);flex-direction:column;gap:8px;margin-top:18px;font-size:10px;display:flex}.mini-legend span{align-items:center;gap:7px;display:flex}.mini-legend i{border-radius:50%;width:7px;height:7px}.home-recent{margin-top:18px}.transactions{margin-top:10px}.transaction{border-bottom:1px solid #e5e8e4;grid-template-columns:37px 1fr auto;align-items:center;gap:11px;padding:13px 0;display:grid}.transaction:last-child{border:0}.tx-icon{border-radius:12px;place-items:center;width:34px;height:34px;font-size:16px;display:grid}.tx-icon.food{color:#708d77;background:#e2ece3}.tx-icon.shop{color:#ba914d;background:#f0e6cf}.tx-icon.salary{color:#ad756b;background:#e8dcda}.transaction b{font-size:12px;font-weight:600;display:block}.transaction small{color:#a0a9a2;margin-top:4px;font-size:10px;display:block}.transaction strong{font:500 11px DM Mono}.today-mark{color:#9ca69e;border-top:1px solid #e4e8e3;align-items:center;gap:7px;padding-top:14px;font-size:10px;display:flex}.today-mark span{background:#78977f;border-radius:50%;width:6px;height:6px}.voice-card{background:#e5ebe480;border:1px dashed #cbd3cb;border-radius:22px;align-items:center;gap:18px;margin-top:18px;padding:20px 25px;display:flex}.voice-orb{color:#6d8b73;background:#d4e0d5;border-radius:50%;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.voice-card h2{letter-spacing:-.04em;margin:0;font-size:18px}.voice-card p:not(.eyebrow){color:var(--muted);margin:6px 0 0;font-size:11px}.voice-card button{color:#aab2ac;background:0 0;border:1px solid #d3dad3;border-radius:20px;margin-left:auto;padding:9px 14px;font-size:11px}.menu-panel{z-index:20;backdrop-filter:blur(24px);background:#f6f8f5e3;border:1px solid #fff;border-radius:28px;width:min(350px,100% - 36px);height:calc(100vh - 36px);padding:36px 34px;position:fixed;top:18px;left:18px;box-shadow:15px 20px 60px #2c3a302e}.backdrop{z-index:19;backdrop-filter:blur(3px);background:#28342c1f;border:0;position:fixed;inset:0}.menu-heading{justify-content:space-between;display:flex}.menu-dot{background:#6f8c75;border-radius:50%;width:7px;height:7px}.menu-panel h2{letter-spacing:-.07em;margin:90px 0 44px;font-size:36px;font-weight:500;line-height:1.16}.menu-panel h2 em{color:#789278;font-style:normal}.menu-panel nav{flex-direction:column;gap:7px;display:flex}.menu-panel nav button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:13px;align-items:center;gap:14px;padding:15px 12px;font-size:13px;display:flex}.menu-panel nav button:hover,.menu-panel nav button.active{background:#e4ece4}.menu-panel nav button span{color:#77917b;width:20px;font-size:19px}.menu-panel nav button b{color:#98a39b;margin-left:auto;font-weight:400}.menu-note{color:#99a39c;font-size:11px;position:absolute;bottom:34px}.modal-backdrop{z-index:40;backdrop-filter:blur(10px);background:#242f2847;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.entry-modal{background:#f8faf7;border-radius:27px;width:min(440px,100%);padding:27px;box-shadow:0 22px 70px #23302738}.modal-head{justify-content:space-between;display:flex}.modal-head h2{letter-spacing:-.06em;margin:7px 0 0;font-size:23px;font-weight:600}.modal-head button{width:31px;height:31px;color:var(--muted);background:#e9eeea;border:0;border-radius:50%;font-size:22px}.modal-kicker{letter-spacing:.13em;font:10px DM Mono}.modal-kicker.income{color:#6d8e73}.modal-kicker.expense{color:#bd786e}.amount-input{border-bottom:1px solid #d9e0d9;align-items:center;gap:10px;margin:24px 0 20px;padding:7px 0;display:flex}.amount-input span{color:#7c8980;font:22px DM Mono}.amount-input input{letter-spacing:-.08em;width:100%;color:var(--ink);background:0 0;border:0;outline:0;font:500 40px DM Mono}.amount-input input::placeholder{color:#c5cdc5}.modal-categories{grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:17px;display:grid}.modal-categories button{color:#778179;background:#f1f4f0;border:1px solid #e0e6e0;border-radius:11px;padding:9px 3px;font-size:10px}.modal-categories button span{margin-bottom:3px;font-size:17px;display:block}.modal-categories button.selected{color:#4e6f56;background:#e2ebe3;border-color:#8da393}.keypad{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.keypad button{color:var(--ink);background:#edf1ed;border:0;border-radius:11px;padding:13px;font:500 17px DM Mono}.keypad button:hover{background:#e2e9e2}.save-button{color:#fff;background:#506e58;border:0;border-radius:13px;width:100%;margin-top:14px;padding:14px;font-size:13px}.subpage{padding-top:70px}.back-link{margin-bottom:48px;padding:0;font-size:12px}.subpage-head{justify-content:space-between;align-items:end;margin-bottom:34px;display:flex}.subpage-head p:not(.eyebrow){color:var(--muted);margin:12px 0 0;font-size:13px}.archive-icon{color:#789278;font-size:42px}.month-tabs{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.month-tabs button{text-align:left;color:var(--muted);background:#ffffff6e;border:1px solid #dce3dc;border-radius:15px;padding:13px}.month-tabs button.selected{color:var(--green-deep);background:#e1ebe2;border-color:#8ca490}.month-tabs small,.month-tabs strong{display:block}.month-tabs small{font:10px DM Mono}.month-tabs strong{margin-top:5px;font-size:16px}.month-summary{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.month-summary span,.month-summary small{color:var(--muted);font-size:11px;display:block}.month-summary strong{margin:10px 0 7px;font:500 35px DM Mono;display:block}.month-summary-side{gap:28px;display:flex}.month-summary-side b{margin-top:5px;font:500 13px DM Mono;display:block}.month-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.month-card{text-align:left;background:#ffffff85;border:1px solid #0000;border-radius:18px;justify-content:space-between;min-height:135px;padding:22px;display:flex;position:relative}.month-card:hover,.month-card.selected{background:#f6f8f5;border-color:#bccabe}.month-card small{color:#9ca69e;font:10px DM Mono}.month-card h3{letter-spacing:-.06em;margin:7px 0;font-size:25px}.month-card i{color:#9ca69e;font-style:normal}.month-card-values{color:var(--muted);flex-direction:column;justify-content:center;align-items:end;gap:9px;font-size:10px;display:flex}.month-card-values b{margin-top:3px;font:500 11px DM Mono;display:block}.all-transactions{margin-top:10px}.all-transactions-head{color:var(--muted);justify-content:space-between;padding-bottom:5px;font-size:12px;display:flex}.all-transactions-head b{font:500 11px DM Mono}@media (width<=760px){.app-shell{padding:20px 17px 45px}.welcome-row{flex-direction:column;align-items:start;gap:20px;margin:45px 0 25px}.month-pill{align-self:flex-end}.action-grid,.dashboard-grid,.month-grid{grid-template-columns:1fr;gap:12px}.action-card{min-height:130px;padding:22px}.action-icon{margin-right:17px;font-size:38px}.action-text strong{font-size:18px}.balance-card,.category-card,.recent-card,.all-transactions,.month-summary{padding:20px}.donut-layout{grid-template-columns:45% 55%}.donut-wrap{width:145px;height:145px}.voice-card{align-items:flex-start;padding:18px}.voice-card button{display:none}.menu-panel{padding:29px 26px}.menu-panel h2{margin-top:70px}.subpage{padding-top:45px}.subpage-head{margin-bottom:25px}.subpage-head h1{font-size:36px}.month-tabs{grid-template-columns:repeat(2,1fr)}.month-summary{flex-direction:column;align-items:flex-start;gap:17px}.month-summary-side{gap:23px}.transaction strong{font-size:10px}}.auth-shell{background:radial-gradient(circle at 20% 10%,#f9fbf8 0,#eef0ec 42%,#e4e9e3 100%);place-items:center;min-height:100vh;padding:22px;display:grid}.auth-card{background:#ffffffba;border:1px solid #ffffffe6;border-radius:28px;width:min(410px,100%);padding:42px 38px;box-shadow:0 24px 60px #37463b1f}.auth-mark{color:#fff;background:linear-gradient(135deg,#748d79,#35493b);border-radius:50%;place-items:center;width:46px;height:46px;margin-bottom:24px;font-weight:700;display:grid}.auth-card h1{letter-spacing:-.07em;margin:5px 0 8px;font-size:34px}.auth-lede{color:var(--muted);margin:0 0 28px;font-size:12px}.auth-card form{flex-direction:column;gap:15px;display:flex}.auth-card label{color:var(--muted);font-size:11px}.auth-card input{width:100%;color:var(--ink);background:#f8faf7;border:1px solid #d9e0d9;border-radius:11px;outline:0;margin-top:7px;padding:13px 14px;display:block}.auth-card input:focus{border-color:#8ba190;box-shadow:0 0 0 3px #78977f1f}.auth-submit{color:#fff;background:#506e58;border:0;border-radius:12px;margin-top:4px;padding:14px}.auth-switch{color:#789278;background:0 0;border:0;width:100%;padding:17px 0 0;font-size:11px;display:block}.auth-message{color:#ad756b;background:#f5e6e2;border-radius:9px;margin:0;padding:10px;font-size:11px}.logout{color:#a66f66;margin-left:4px;font-size:10px}.db-message{z-index:12;color:#98665e;background:#f4e5e1;border:1px solid #e6cac4;border-radius:20px;padding:10px 15px;font-size:11px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #563c361a}.date-picker-dock{z-index:45;background:#f8faf7f2;border:1px solid #dce4dc;border-radius:15px;gap:10px;padding:10px 13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #2d3c3026}.date-picker-dock label{color:#7c8980;align-items:center;gap:7px;font-size:10px;display:flex}.date-picker-dock input{color:var(--ink);background:#fff;border:1px solid #d9e0d9;border-radius:8px;padding:7px 8px;font:11px DM Mono}
