@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap");:root{--ink:#202033;--muted:#77758b;--line:#eceaf4;--purple:#7542ed;--purple2:#a77bff;--pink:#f28aae;--green:#22a66f;--red:#f45b72;--cream:#fffaf0;--bg:#f7f6fb}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{background:linear-gradient(135deg,#f2efff,#faf9fd 38%,#f8f7fb);color:var(--ink);font-family:DM Sans,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:10px}.app-frame{min-height:calc(100vh - 20px);background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.75);border-radius:14px;overflow:hidden;box-shadow:0 12px 50px rgba(70,49,118,.1);display:flex}.sidebar{width:264px;flex:none;border-right:1px solid #f0eef5;padding:32px 20px 22px;display:flex;flex-direction:column;background:rgba(255,255,255,.8)}.brand{display:flex;align-items:center;gap:12px;padding:0 6px;margin-bottom:38px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#a579ff,#6e39e7);color:white;box-shadow:0 8px 18px rgba(117,66,237,.25)}.brand-title{font-family:Plus Jakarta Sans;font-weight:800;font-size:18px}.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}.nav{display:flex;flex-direction:column;gap:7px}.nav-item{text-decoration:none;color:#343347;padding:12px 14px;border-radius:11px;display:flex;align-items:center;gap:13px;font-size:14px;transition:.2s}.nav-item:hover{background:#f6f1ff;color:var(--purple)}.nav-item.active{color:var(--purple);background:linear-gradient(90deg,#f1e9ff,#f8f4ff);font-weight:600}.sidebar-spacer{flex:1 1}.couple-card{text-align:center;padding:10px 5px 14px;color:#68657b;font-size:13px;line-height:1.55}.couple-photo-wrapper{position:relative;width:100%;height:130px;border-radius:14px;overflow:hidden;margin-bottom:8px;box-shadow:0 6px 20px rgba(117,66,237,.18);border:2px solid #fff}.couple-photo{width:100%;height:100%;object-fit:cover;display:block}.heart-float{position:absolute;right:10px;top:6px;color:#ef6e9b;font-size:22px;z-index:2;text-shadow:0 2px 5px rgba(0,0,0,.35)}.user-switch{margin-top:8px;border:1px solid #ece9f5;background:#faf9ff;border-radius:12px;padding:11px;gap:10px;font-size:13px}.avatar,.user-switch{display:flex;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background:#7b43e9;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(117,66,237,.2)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.main{flex:1 1;min-width:0;padding:34px 36px 20px;overflow:auto}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:28px}.eyebrow{font-size:14px;color:var(--muted);margin:0 0 5px}h1,h2,h3{font-family:Plus Jakarta Sans,sans-serif;margin:0}h1{font-size:26px;letter-spacing:-.6px}.subtitle{margin:7px 0 0;color:var(--muted);font-size:14px}.top-actions{display:flex;gap:12px;align-items:center}.outline-btn,.select-like{border:1px solid #e5e2ec;background:white;border-radius:10px;padding:11px 14px;color:#57546a;display:flex;align-items:center;gap:9px}.primary-btn{border:0;background:linear-gradient(135deg,#7542ed,#8f52ee);color:#fff;border-radius:10px;padding:12px 17px;font-weight:600;box-shadow:0 8px 18px rgba(117,66,237,.2);display:flex;align-items:center;gap:8px}.grid-top{display:grid;grid-template-columns:1.65fr 1fr 1fr 1.4fr;grid-gap:16px;gap:16px}.card{background:white;border:1px solid #eeeaf4;border-radius:14px;box-shadow:0 5px 18px rgba(42,29,71,.045)}.balance-card{min-height:272px;padding:27px;background:linear-gradient(135deg,#7b46ee,#a174fb 70%,#c7aaff);color:white;overflow:hidden;position:relative}.balance-card:after{content:"";position:absolute;inset:auto -10% -45% 0;height:70%;background:linear-gradient(transparent,rgba(255,255,255,.1));border-radius:50%;transform:rotate(-5deg)}.card-label{font-size:14px;opacity:.9}.big-money{font-family:Plus Jakarta Sans;font-size:30px;font-weight:800;margin-top:8px;letter-spacing:-1px}.delta{font-size:12px;margin-top:8px;opacity:.9}.sparkline{position:absolute;left:0;right:0;bottom:17px;height:72px}.sparkline svg{width:100%;height:100%}.progress-card{padding:22px;text-align:center}.progress-ring{width:145px;height:145px;margin:8px auto;position:relative;display:grid;place-items:center}.progress-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.progress-num{font-family:Plus Jakarta Sans;font-size:25px;font-weight:800}.progress-sub{font-size:12px;color:var(--muted)}.metric-card{padding:22px;min-height:272px;display:flex;flex-direction:column;justify-content:center;gap:26px}.metric{display:flex;align-items:center;gap:12px}.metric-icon{width:43px;height:43px;border-radius:50%;display:grid;place-items:center}.metric-icon.green{background:#e4f7ed;color:#22a66f}.metric-icon.red{background:#ffe8ed;color:#ef5871}.metric-name{font-size:13px;color:var(--muted)}.metric-value{font-weight:700;font-size:15px;margin-top:4px}.goal-card{padding:22px;background:linear-gradient(135deg,#fffaf0,#fffdf7);border-color:#f6e2b7;position:relative;overflow:hidden}.goal-card .goal-art{position:absolute;right:8px;top:45px;font-size:65px;opacity:.78}.goal-card h3{font-size:16px;margin-top:5px;max-width:180px}.goal-target{margin-top:20px;font-size:13px;color:#696579}.goal-target strong{display:block;color:var(--ink);font-size:15px;margin-top:4px}.progress-line{height:8px;background:white;border-radius:999px;overflow:hidden;margin-top:16px}.progress-line>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8d50ef,#a876fa)}.goal-percent{text-align:right;font-size:12px;color:#686579;margin-top:6px}.section-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr);grid-gap:16px;gap:16px;margin-top:16px}.table-card{padding:20px;overflow:hidden}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.section-head h2{font-size:17px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th{text-align:left;font-size:12px;color:#77738a;background:#fbfaff;padding:12px 10px;font-weight:600}.data-table td{padding:13px 10px;border-top:1px solid #f1eff5;font-size:13px}.data-table tr:hover td{background:#fcfbff}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:600}.badge.green{background:#e7f8ee;color:#1d9a66}.badge.red{background:#ffeaee;color:#e84e69}.badge.purple{background:#f0e9ff;color:#7542ed}.badge.blue{background:#eaf2ff;color:#4775d1}.badge.orange{background:#fff1dc;color:#dd781b}.actions{display:flex;gap:7px}.icon-btn{width:30px;height:30px;border:0;border-radius:8px;background:#f6f2ff;color:#7542ed;display:grid;place-items:center}.icon-btn.delete{background:#fff0f3;color:#ed5270}.side-stack{display:flex;flex-direction:column;gap:16px}.recent-card{padding:20px}.recent-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #f1eff5}.recent-row:first-of-type{border-top:0}.recent-dot{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#eef6ff;color:#4e78d1}.recent-info{flex:1 1;min-width:0}.recent-name{font-size:13px;font-weight:600}.recent-date{color:#9691a5;font-size:11px;margin-top:3px}.amount.in{color:#20a56d}.amount.in,.amount.out{font-size:12px;font-weight:600}.amount.out{color:#ee506c}.quote-card{padding:22px;background:linear-gradient(135deg,#fff0f5,#fff6f9);border:0;min-height:150px;position:relative;overflow:hidden}.quote-mark{font-size:35px;color:#ec6b94;line-height:1}.quote-card p{color:#80536a;font-size:13px;line-height:1.6;max-width:230px;margin:5px 0}.quote-art{position:absolute;right:15px;bottom:-4px;font-size:56px}.page-card{padding:22px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.input{width:100%;border:1px solid #e5e2ec;border-radius:10px;padding:11px 12px;outline:none;background:#fff}.input:focus{border-color:#a47af3;box-shadow:0 0 0 3px #f1eaff}.search{min-width:220px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;color:#666277;font-weight:600}.modal-backdrop{position:fixed;inset:0;background:rgba(34,29,49,.32);display:grid;place-items:center;padding:20px;z-index:30}.modal{width:min(580px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 80px rgba(30,22,48,.22)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-head h2{font-size:19px}.close{border:0;background:#f5f3f8;border-radius:9px;width:34px;height:34px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.chart-grid{display:grid;grid-template-columns:1.7fr 1fr;grid-gap:16px;gap:16px}.chart-card{padding:20px;height:340px}.chart-title{font-size:16px;font-weight:700;margin-bottom:18px}.empty{color:#8a8699;padding:40px 10px}.empty,.footer{text-align:center}.footer{color:#8d899d;font-size:12px;padding:20px 0 4px}.mobile-bottom-nav,.mobile-header{display:none}@media (max-width:1200px){.grid-top{grid-template-columns:1.5fr 1fr 1fr}.goal-card{grid-column:1/-1;min-height:210px}.section-grid{grid-template-columns:1fr}.sidebar{width:230px}}@media (max-width:900px){.app-frame{flex-direction:column}.sidebar{display:none}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #f0eef5;background:rgba(255,255,255,.95);position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #ede8f5;padding:8px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around;align-items:center;z-index:40;box-shadow:0 -4px 20px rgba(42,29,71,.08)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#77738a;font-size:10px;font-weight:500;padding:6px 8px;border-radius:10px;transition:all .2s;flex:1 1;text-align:center}.mobile-nav-item.active{color:var(--purple);font-weight:700;background:#f3ecff}.main{padding:20px 18px 80px}.grid-top{grid-template-columns:1fr 1fr}.balance-card{grid-column:1/-1}.chart-grid{grid-template-columns:1fr}}@media (max-width:560px){.app-shell{padding:0}.app-frame{min-height:100vh;border-radius:0;border:0}.mobile-nav-item span{font-size:9px}.mobile-nav-item{padding:4px 2px}.topbar{flex-direction:column}.top-actions{width:100%}.top-actions>*{flex:1 1;justify-content:center}.grid-top{grid-template-columns:1fr}.balance-card,.goal-card{grid-column:auto}.form-grid{grid-template-columns:1fr}.main{padding:18px 14px 85px}h1{font-size:22px}}