@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{--ink:#17212b;--muted:#7b8794;--line:#e8edf0;--canvas:#f7f9fa;--card:#fff;--navy:#173b49;--teal:#128278;--mint:#dff5ed;--rose:#fee8e7;--purple:#ede8ff;--shadow:0 7px 25px #1935470b}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas);font-family:DM Sans,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#123743;color:#d7e5e7;display:flex;flex-direction:column;padding:28px 16px;position:fixed;inset:0 auto 0 0;z-index:3}.logo{font:800 22px Manrope,sans-serif;color:#fff;display:flex;gap:10px;align-items:center;padding:0 10px 42px}.logo span,.brand-mark{display:grid;place-items:center;background:#39b79f;border-radius:10px;width:33px;height:33px;color:#fff}.sidebar nav{display:grid;gap:7px}.sidebar nav button,.logout{color:#b7cbd0;border:0;background:transparent;border-radius:9px;text-align:left;display:flex;align-items:center;gap:13px;padding:12px 13px;font-size:14px;font-weight:600}.sidebar nav button.selected,.sidebar nav button:hover{background:#26515d;color:#fff}.sidebar-bottom{margin-top:auto}.profile{border-top:1px solid #39606a;padding:19px 8px 15px;display:flex;gap:10px;align-items:center}.profile>div{width:34px;height:34px;flex:none;border-radius:50%;background:#71c3ba;color:#123743;display:grid;place-items:center;font-weight:700;overflow:hidden}.profile img{width:100%;height:100%;object-fit:cover}.profile span{min-width:0}.profile b,.profile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile b{font-size:12px;color:#fff}.profile small{font-size:10px;color:#a4bec4;margin-top:3px}.logout{width:100%;padding-left:9px}.main-content{width:calc(100% - 248px);margin-left:248px;padding:0 42px 48px;max-width:1650px}.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.topbar p,.page-intro p{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:700}.topbar h2{margin:4px 0 0;font:700 25px Manrope,sans-serif}.top-actions{display:flex;align-items:center;gap:9px}.top-actions select{width:auto;border:1px solid var(--line);background:var(--card);border-radius:8px;color:#44515c;padding:9px 30px 9px 11px;font-size:13px}.add-button{background:var(--navy);border:0;color:#fff;border-radius:8px;padding:10px;font-weight:700;font-size:13px;white-space:nowrap;box-shadow:0 4px 10px #173b4920}.add-button:hover{background:#0b2e39}.page{padding-top:34px;max-width:1250px}.hero{border-radius:16px;background:linear-gradient(115deg,#153d49,#1d5a63);min-height:204px;padding:31px 37px;color:#fff;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:390px;height:390px;border:60px solid #61baa833;border-radius:50%;right:-165px;top:-202px}.hero p,.modal>p{letter-spacing:.13em;font-size:10px;font-weight:700;margin:0 0 11px;color:#a8d4d0}.hero h1{font:800 42px Manrope,sans-serif;margin:0;letter-spacing:-.04em}.hero span{font-size:13px;color:#c2dbd9}.hero-ring{z-index:1;width:110px;height:110px;border:9px solid #59c0ad;border-left-color:#ffffff40;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-right:26px}.hero-ring b{font:800 21px Manrope,sans-serif}.hero-ring small{font-size:9px;color:#d2e7e5}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.metric{border-radius:12px;background:var(--card);border:1px solid var(--line);padding:20px 21px;box-shadow:var(--shadow);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;width:4px;height:100%;left:0;top:0;background:#8bd7c7}.metric.rose:before{background:#ed9f9b}.metric.purple:before{background:#a99bea}.metric small{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.metric strong{display:block;font:800 25px Manrope,sans-serif;margin:9px 0 5px}.metric span{font-size:12px;color:var(--muted)}.content-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.card{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:22px}.card-head h3{margin:0;font:700 16px Manrope,sans-serif}.card-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}.budget-numbers{display:flex;align-items:baseline;gap:7px;margin-bottom:11px}.budget-numbers b{font:800 26px Manrope,sans-serif}.budget-numbers span{color:var(--muted);font-size:12px}.progress,.thin-bar{height:7px;border-radius:30px;background:#ecf0ef;overflow:hidden}.progress i,.thin-bar b{height:100%;display:block;background:#ed847e;border-radius:30px}.budget-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.budget-inputs label,.settings-card label,.modal label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}.budget-inputs input,.settings-card input,.modal input,.modal select,.new-category input{display:block;width:100%;border:1px solid var(--line);border-radius:7px;padding:10px;margin-top:6px;color:var(--ink);outline:none}.budget-inputs input:focus,.settings-card input:focus,.modal input:focus,.modal select:focus,.new-category input:focus{border-color:#35a799;box-shadow:0 0 0 3px #35a79918}.category-bars{display:grid;gap:15px}.category-bars>div{display:grid;grid-template-columns:110px 1fr 68px;align-items:center;gap:8px;font-size:12px}.category-bars span{display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-bars strong{font-size:11px;text-align:right}.dot{width:7px;height:7px;border-radius:50%;background:#45b5a5;flex:none}.dot.d1{background:#ef9c8c}.dot.d2{background:#897ed4}.dot.d3{background:#e4bd68}.dot.d4{background:#73a8d8}.thin-bar{height:6px}.thin-bar b{background:#44b4a2}.link-button{display:flex;align-items:center;gap:5px;background:transparent;border:0;color:#187c74;font-size:12px;font-weight:700;padding:0}.spending-card .link-button{margin-top:24px}.recent-card{margin-top:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:620px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:0 9px 11px}td{font-size:12px;border-top:1px solid var(--line);padding:13px 9px;color:#66727d}td:first-child{color:var(--ink)}td:first-child b{font-size:12px}td.amount,td.expense,td.income,td.saving{font-weight:700;text-align:right}td.expense{color:#c85d5a}td.income{color:#168276}td.saving{color:#6b5ac5}.type-icon{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:7px;margin-right:8px;font-size:16px;background:var(--rose);color:#c85d5a}.type-icon.income{background:var(--mint);color:#15806f}.type-icon.saving{background:var(--purple);color:#6859bd}.category-tag{display:inline-block;background:#f3f5f6;border-radius:5px;padding:4px 7px;color:#64717c;font-size:11px}.remove{border:0;background:transparent;color:#9ba5ac;font-size:11px}.remove:hover{color:#d36360}.page-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.page-intro h1{font:800 28px Manrope,sans-serif;margin:0 0 5px;letter-spacing:-.03em}.page-intro p{text-transform:none;letter-spacing:0;font-weight:400;font-size:13px}.filter-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filter-row>div{display:flex;padding:4px;background:#f4f6f7;border-radius:8px;gap:2px}.filter-row button{border:0;background:transparent;padding:7px 12px;border-radius:6px;color:var(--muted);text-transform:capitalize;font-size:12px}.filter-row button.active{background:#fff;color:var(--ink);box-shadow:0 2px 5px #17212b12;font-weight:700}.filter-row>span{color:var(--muted);font-size:12px}.trend-card .chart{height:217px;display:flex;align-items:end;gap:18px;border-bottom:1px solid var(--line);padding:10px 6px 0}.chart-col{flex:1;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:end;gap:8px;color:var(--muted);font-size:11px}.chart-bars{height:177px;display:flex;align-items:end;justify-content:center;gap:4px}.chart-bars i{width:13px;border-radius:5px 5px 0 0;min-height:2px}.chart-bars .income,.legend .income{background:#41b4a1}.chart-bars .expense,.legend .expense{background:#efa19b}.legend{display:flex;gap:14px;margin-top:15px;color:var(--muted);font-size:11px}.legend span{display:flex;gap:5px;align-items:center}.legend i{width:8px;height:8px;border-radius:2px}.snapshot{display:grid;gap:13px}.snapshot>div{padding-bottom:13px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.snapshot span{font-size:12px;color:var(--muted)}.snapshot b{font:700 13px Manrope,sans-serif}.insight{font-size:12px;line-height:1.65;color:#53616b;background:#f3faf8;border-radius:8px;padding:12px;margin:17px 0 0}.settings-card{max-width:650px;margin-bottom:17px}.settings-card label{max-width:330px}.category-pills{display:flex;flex-wrap:wrap;gap:8px}.category-pills span{font-size:12px;background:#f1f5f5;border-radius:20px;padding:7px 11px}.new-category{display:flex;gap:8px;margin-top:18px;max-width:430px}.new-category input{margin:0}.new-category button{border:0;border-radius:7px;background:#e6efee;color:#22635c;padding:0 12px;font-weight:700;font-size:12px}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;background:#112d367a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px}.modal{width:min(100%,450px);background:#fff;border-radius:16px;padding:30px;position:relative;box-shadow:0 20px 60px #0e252d55}.modal>p{color:#278f82}.modal h2{font:800 24px Manrope,sans-serif;margin:0 0 24px}.modal-close{position:absolute;right:17px;top:17px;border:0;background:#f3f6f6;color:#617079;border-radius:7px;padding:6px}.type-switch{display:flex;border:1px solid var(--line);background:#f7f9f9;padding:3px;border-radius:8px;margin-bottom:19px}.type-switch button{flex:1;border:0;background:transparent;text-transform:capitalize;padding:8px;border-radius:6px;color:var(--muted);font-size:12px}.type-switch button.active{color:var(--ink);background:#fff;box-shadow:0 2px 5px #17212b12;font-weight:700}.modal label{display:block;margin:15px 0}.modal .submit{width:100%;justify-content:center;margin-top:8px}.empty-state{color:var(--muted);font-size:13px;padding:38px;text-align:center}.toast{position:fixed;right:28px;bottom:28px;z-index:12;background:#fff0ef;border:1px solid #f4cdca;color:#a34643;border-radius:9px;padding:12px 13px;box-shadow:var(--shadow);font-size:12px}.toast button{border:0;background:transparent;vertical-align:middle;color:inherit;margin-left:7px}.loading{height:100vh;display:grid;place-content:center;gap:12px;text-align:center;color:var(--muted);font-size:13px}.loading .brand-mark{margin:auto}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fcfdfd}.auth-panel{display:flex;flex-direction:column;justify-content:center;width:min(410px,calc(100% - 50px));margin:auto}.auth-panel h1{font:800 37px/1.15 Manrope,sans-serif;margin:24px 0 13px;letter-spacing:-.05em}.auth-panel p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 28px}.google-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:13px;width:100%;font-size:13px;font-weight:700;color:#33414b}.google-button b{font-size:17px;color:#4285f4;margin-right:9px}.auth-panel small{margin-top:13px;color:#ba5b56;font-size:11px;text-align:center}.auth-art{background:#123c49;color:#fff;padding:43px 11%;position:relative;overflow:hidden;display:flex;flex-direction:column}.auth-art:before,.auth-art:after{content:"";position:absolute;border:1px solid #6bc0b155;border-radius:50%;width:600px;height:600px;right:-230px;top:-170px}.auth-art:after{width:420px;height:420px;right:-100px;top:-80px}.auth-art>span{font:800 15px Manrope,sans-serif;letter-spacing:.13em}.auth-art>p{margin:auto 0 0;font:700 35px/1.2 Manrope,sans-serif;z-index:1}.auth-art em{color:#71cebb;font-style:normal}.art-card{z-index:1;background:#fff;color:#183f4a;border-radius:12px;padding:22px;width:300px;margin:auto;box-shadow:0 20px 40px #071d244d}.art-card small{font-size:9px;font-weight:700;letter-spacing:.1em;color:#789097}.art-card strong{display:block;font:800 29px Manrope,sans-serif;margin:10px 0}.art-card i{display:block;height:7px;background:#e8f2f0;border-radius:10px}.art-card i:after{content:"";display:block;width:67%;height:100%;background:#46b5a4;border-radius:10px}@media (max-width:900px){.sidebar{width:70px;padding:24px 10px}.logo{padding:0 9px 32px;font-size:0}.sidebar nav button{justify-content:center;padding:12px}.sidebar nav button svg{margin:0}.sidebar nav button,.logout{font-size:0}.profile{justify-content:center;padding-left:0;padding-right:0}.profile span{display:none}.logout{justify-content:center}.main-content{width:calc(100% - 70px);margin-left:70px;padding:0 24px}.auth-art{display:none}.auth-page{grid-template-columns:1fr}.auth-panel{min-height:100vh}}@media (max-width:640px){.sidebar{display:none}.main-content{width:100%;margin:0;padding:0 16px 28px}.topbar{height:auto;padding:22px 0;align-items:start}.topbar h2{font-size:22px}.top-actions select{display:none}.top-actions .add-button{padding:10px;font-size:0}.top-actions .add-button svg{margin:0}.page{padding-top:22px}.hero{padding:25px;min-height:180px}.hero h1{font-size:33px}.hero-ring{display:none}.metric-grid,.content-grid{grid-template-columns:1fr;gap:11px;margin:12px 0}.metric{padding:16px}.metric strong{font-size:22px}.budget-inputs{grid-template-columns:1fr}.card{padding:18px}.recent-card{margin-top:11px}.page-intro h1{font-size:24px}.mobile-add{display:flex}.category-bars>div{grid-template-columns:92px 1fr 60px}.auth-panel h1{font-size:32px}.filter-row{align-items:start;gap:12px;flex-direction:column}.filter-row>div{width:100%;overflow:auto}.trend-card .chart{gap:8px}.chart-bars i{width:9px}}@media (max-width:640px){body{padding-bottom:72px}.sidebar{display:flex;position:fixed;inset:auto 0 0;width:100%;height:72px;padding:7px 12px 8px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -5px 20px #163a440d;z-index:20}.sidebar .logo,.sidebar .sidebar-bottom{display:none}.sidebar nav{width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.sidebar nav button,.sidebar nav button.selected{height:57px;padding:5px 2px;background:transparent;color:#98a2a9;border-radius:8px;display:flex;flex-direction:column;justify-content:center;gap:3px;font-size:10px;font-weight:600}.sidebar nav button svg{width:20px;height:20px}.sidebar nav button.selected{color:#e97170}}.top-actions>.add-button{width:54px;height:54px;padding:0;justify-content:center;border-radius:16px;font-size:0;box-shadow:0 12px 24px #173b4930}.top-actions>.add-button svg{width:24px;height:24px}.google-button b{display:inline-block;width:20px;height:20px;margin-right:10px;vertical-align:middle;font-size:0;background:url(/google-mark.svg) center / contain no-repeat}.analytics-intro{margin-bottom:24px}.analytics-intro h1{margin:0 0 5px;font:800 28px Manrope,sans-serif;letter-spacing:-.03em}.analytics-intro p{margin:0;color:var(--muted);font-size:13px}.analytics-charts{grid-template-columns:1.35fr .65fr}.interactive-chart{min-height:355px}.bar-chart{height:250px}.doughnut-chart{height:250px;position:relative}.chart-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:12px}.category-analysis{margin-top:18px}.analysis-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}.analysis-list>div{display:grid;grid-template-columns:1fr auto 36px;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;align-items:center}.analysis-list span{display:flex;align-items:center;gap:8px}.analysis-list b{font-size:12px}.analysis-list small{color:var(--muted);text-align:right}.analysis-dot{width:8px;height:8px;border-radius:50%;background:#45b5a4}.analysis-dot.dot-1{background:#ef9c8c}.analysis-dot.dot-2{background:#897ed4}.analysis-dot.dot-3{background:#e4bd68}.analysis-dot.dot-4{background:#73a8d8}.transaction-page{padding-top:34px}.transaction-card{min-height:480px}@media (max-width:640px){.top-actions>.add-button{width:48px;height:48px;border-radius:14px}.analytics-charts{grid-template-columns:1fr}.interactive-chart{min-height:320px}.bar-chart,.doughnut-chart{height:225px}.analysis-list{grid-template-columns:1fr}.transaction-page{padding-top:22px}}.chat-page{max-width:860px;min-height:calc(100vh - 100px);padding:30px 0 116px;display:flex;flex-direction:column}.chat-heading{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}.chat-avatar{width:42px;height:42px;display:grid;place-items:center;background:var(--navy);color:#fff;border-radius:13px}.chat-heading p{margin:0 0 2px;font-size:9px;letter-spacing:.12em;color:var(--teal);font-weight:800}.chat-heading h1{margin:0;font:800 21px Manrope,sans-serif;letter-spacing:-.03em}.chat-heading span{color:var(--muted);font-size:11px}.chat-feed{display:flex;flex-direction:column;gap:9px;flex:1;padding:24px 4px 15px}.chat-day{align-self:center;background:#e8eeef;color:#64727a;border-radius:20px;padding:5px 10px;font-size:10px;font-weight:700;margin:6px 0 4px}.transaction-bubble{width:min(100%,340px);align-self:flex-end;padding:13px 14px 9px;border-radius:13px 13px 3px;background:#dff3ee;border:1px solid #c4e9df;box-shadow:0 3px 9px #1237430d}.transaction-bubble.expense{background:#fff0ee;border-color:#f6d4d1}.transaction-bubble.saving{background:#f0edff;border-color:#ded7ff}.bubble-top{display:flex;justify-content:space-between;align-items:center;gap:25px;text-transform:capitalize}.bubble-top span{color:#4c6568;font-size:11px;font-weight:700}.bubble-top b{font:800 15px Manrope,sans-serif;color:#167d70}.expense .bubble-top b{color:#c85d5a}.saving .bubble-top b{color:#6c59c1}.bubble-category{display:inline-block;margin-top:8px;padding:3px 7px;background:#ffffff91;border-radius:5px;font-size:10px;color:#596b70}.transaction-bubble p{margin:9px 0 0;font-size:12px;color:#3d5055;line-height:1.4}.transaction-bubble time{display:block;margin-top:6px;font-size:9px;color:#71878a;text-align:right}.chat-welcome{margin:auto;display:grid;place-items:center;gap:9px;text-align:center;color:var(--muted);font-size:12px;max-width:260px}.chat-welcome svg{color:var(--teal)}.chat-welcome b{color:var(--ink);font:700 15px Manrope,sans-serif}.chat-welcome span{line-height:1.5}.chat-composer{position:fixed;z-index:5;bottom:22px;left:calc(248px + max(42px,(100vw - 248px - 1250px) / 2));width:min(calc(100vw - 332px),860px);background:#fff;border:1px solid var(--line);box-shadow:0 9px 30px #163b4518;border-radius:16px;padding:8px}.chat-composer.expanded{padding:13px}.chat-input-row{display:flex;align-items:center;gap:7px}.chat-input-row input{flex:1;min-width:0;border:0;outline:0;padding:10px 5px;color:var(--ink);background:transparent;font-size:13px}.composer-action,.send-button{width:39px;height:39px;flex:none;border:0;border-radius:11px;display:grid;place-items:center}.composer-action{color:#587077;background:#eef3f3}.send-button{color:#fff;background:var(--navy)}.chat-form{padding:1px 2px 12px}.chat-type{display:flex;gap:7px;margin-bottom:11px}.chat-type button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:20px;padding:6px 11px;text-transform:capitalize;font-size:11px}.chat-type button.active{color:#fff;background:var(--navy);border-color:var(--navy)}.chat-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chat-fields label{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.chat-fields input,.chat-fields select{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:7px;padding:8px;background:#fbfcfc;color:var(--ink)}.topbar:has(+.chat-page) .add-button{display:none}.main-content:has(.chat-page) .topbar .add-button{display:none}@media (max-width:900px){.chat-composer{left:94px;width:min(calc(100vw - 118px),860px)}}@media (max-width:640px){.chat-page{min-height:calc(100vh - 88px);padding:22px 0 100px}.chat-composer{left:12px;bottom:82px;width:calc(100vw - 24px);border-radius:15px}.chat-fields{grid-template-columns:1fr}.transaction-bubble{max-width:85%}.chat-heading{padding-bottom:15px}}
