:root{--ink:#17264a;--muted:#77839b;--line:#e9edf5;--navy:#17264a;--cyan:#16bbc8;--green:#3ecf93;--purple:#8967ec;--orange:#ffb968;--pink:#f777a9;background:#f7f9fc}*{box-sizing:border-box}body{margin:0;background:#f7f9fc;color:var(--ink);font-family:'DM Sans',sans-serif}.sidebar{width:252px;background:#fff;position:fixed;inset:0 auto 0 0;padding:27px 17px;display:flex;flex-direction:column;border-right:1px solid #edf0f6}.brand{display:flex;align-items:center;gap:11px;padding:0 11px 33px;font-family:Manrope}.brand-mark{width:37px;height:37px;border-radius:12px;background:linear-gradient(135deg,#1ccebb,#0ca5c4);color:white;display:grid;place-items:center;font-size:21px;font-weight:800;box-shadow:0 7px 16px #21bbb442}.brand strong{display:block;font-size:14px}.brand span,.profile span{display:block;font:11px 'DM Sans';color:var(--muted);margin-top:2px}nav{display:grid;gap:4px}nav a{padding:12px 13px;border-radius:10px;text-decoration:none;color:#69758c;font-size:14px;font-weight:600}nav a i{font-style:normal;font-size:19px;width:28px;display:inline-block;text-align:center;color:#93a0b5}nav a.active{background:#e9fbf7;color:#127c72}nav a.active i{color:#0bae9e}.side-tip{margin-top:auto;background:#f2efff;border-radius:14px;padding:17px 14px;color:#5d4aab}.side-tip span{font-size:19px}.side-tip b{font-size:12px;display:block;margin-top:7px}.side-tip p{margin:5px 0 0;font-size:11px;line-height:1.45;color:#7b6cb5}.profile{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:19px 8px 0;margin-top:17px}.avatar{width:32px;height:32px;border-radius:50%;background:#f9d9c8;color:#ab5c3d;display:grid;place-items:center;font-size:10px;font-weight:700}.profile b{font-size:11px}.profile button{margin-left:auto;border:0;background:none;color:#8d97a8;font-size:15px}main{margin-left:252px;max-width:1540px;padding:35px 48px 70px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.3px;color:#8b96a9;margin:0 0 7px}h1,h2,h3{font-family:Manrope,sans-serif;margin:0;color:#17264a}h1{font-size:26px;letter-spacing:-1px}h1 span{font-size:21px}.subtle{font-size:13px;color:var(--muted);margin:7px 0 0}.header-actions{display:flex;gap:9px;align-items:center}.icon-btn{border:1px solid var(--line);border-radius:10px;background:#fff;color:#6c7890;width:37px;height:37px;font-size:18px}.notice{position:relative}.notice:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#fa6c92;top:8px;right:9px}.primary{border:0;border-radius:10px;background:#172e5c;color:white;padding:11px 16px;font:600 12px 'DM Sans';box-shadow:0 6px 12px #19346b24}.balance-hero{min-height:138px;border-radius:17px;padding:24px 28px;background:linear-gradient(112deg,#182c59,#203c78);color:white;display:flex;align-items:center;position:relative;overflow:hidden}.balance-hero p{font-size:10px;font-weight:700;letter-spacing:1px;opacity:.68;margin:0}.balance-hero h2{font-size:29px;color:white;letter-spacing:-1.3px;margin:5px 0 5px}.hero-caption{font-size:11px;color:#c7d6f3}.dot{display:inline-block;width:6px;height:6px;border-radius:99px;background:#50d9aa;margin-right:5px}.hero-divider{height:59px;width:1px;background:#ffffff2f;margin:0 47px}.hero-meta{display:flex;gap:43px}.hero-meta span{display:block;text-transform:uppercase;color:#aebfe0;font-size:9px;font-weight:700;letter-spacing:1px;margin-bottom:6px}.hero-meta b{font-size:15px}.hero-meta .expected{color:#afc7ff}.hero-art{position:absolute;right:36px;bottom:0;font-size:78px;line-height:.7;color:#6c8ac0;opacity:.26;transform:rotate(16deg)}.hero-art span{font-size:34px;position:absolute;top:-35px;left:-28px}.hero-art i{font-size:23px;position:absolute;right:15px;bottom:32px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0 42px}.kpi{background:#fff;border-radius:14px;padding:17px;min-height:137px;position:relative;border:1px solid #f0f2f7}.kpi-icon{position:absolute;right:15px;top:15px;width:29px;height:29px;border-radius:9px;display:grid;place-items:center;font-size:16px}.kpi span{font-size:11px;color:#78849a;font-weight:600}.kpi h3{font-size:18px;margin:11px 0 6px;letter-spacing:-.5px}.kpi small{font-size:10px;color:#8995a8}.mint .kpi-icon{background:#dcf8ee;color:#27b987}.lilac .kpi-icon{background:#eee9ff;color:#8260e6}.peach .kpi-icon{background:#fff1df;color:#e69e42}.blue .kpi-icon{background:#e2f2ff;color:#399dd1}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:28px 0 14px}.section-heading h2,.panel h2{font-size:17px;letter-spacing:-.5px}.text-btn{border:0;background:transparent;color:#277dc5;font:600 12px 'DM Sans';padding:5px}.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pay-card{border:1px solid #e9edf4;background:#fff;border-radius:14px;padding:18px;position:relative;min-height:212px;cursor:pointer;transition:.2s}.pay-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #1d366b0d}.pay-card.current{border:2px solid #1cc5ad;background:linear-gradient(145deg,#fff,#f4fffc)}.current-label{position:absolute;right:15px;top:17px;background:#dff8ef;color:#14996f;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:700}.pay-card h3{font-size:15px}.pay-date{font-size:10px;color:#8490a3;margin:4px 0 17px}.pay-numbers{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.pay-numbers span{display:block;color:#8a95a8;text-transform:uppercase;font-size:9px;letter-spacing:.6px;margin-bottom:4px}.pay-numbers b{font-size:13px}.pay-foot{border-top:1px solid #edf0f5;padding-top:13px;display:flex;justify-content:space-between;align-items:center}.pay-foot label{font-size:10px;color:#8390a5}.readiness{font-size:10px;font-weight:700;color:#159c70;background:#e1f9ef;padding:5px 8px;border-radius:99px}.readiness.tight{color:#b27707;background:#fff4d8}.readiness.wait{color:#cf4e55;background:#ffe7e8}.dashboard-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:17px;margin-top:33px}.panel{background:white;border:1px solid #edf0f5;border-radius:15px;padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:15px}.income-item,.expense-item{display:grid;align-items:center;border-top:1px solid #eff2f6;padding:13px 0}.income-item{grid-template-columns:37px 1fr auto auto;gap:10px}.income-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#f0ebff;color:#775ee2;font-size:15px}.item-title{font-size:12px;font-weight:700}.item-meta{font-size:10px;color:#8c97a8;margin-top:3px}.amount{font-size:12px;font-weight:700}.tag{font-size:9px;padding:4px 6px;border-radius:5px;margin-left:10px;font-weight:700}.expected-tag{color:#7e62de;background:#f0ebff}.received-tag{color:#0d9871;background:#e2f9f0}.affordability label{font-size:10px;font-weight:700;color:#78849a;display:block}.affordability input,.affordability select{display:block;margin-top:6px;width:100%;border:1px solid #e4e9f1;border-radius:8px;height:35px;padding:0 10px;color:#4d5b70;font:11px 'DM Sans';outline:none}.afford-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.afford-result{margin-top:13px;padding:10px;border-radius:8px;background:#f5f8fc;color:#66748b;font-size:11px}.afford-result.good{background:#e5f9f0;color:#128766}.afford-result.bad{background:#fff0ef;color:#c44e54}.calculator-icon{color:#9071ed;font-size:25px}.filters{display:flex;gap:5px}.filter{border:1px solid #e7ebf2;background:white;border-radius:7px;padding:6px 9px;font:600 10px 'DM Sans';color:#7c879a}.filter.active{background:#172e5c;color:#fff;border-color:#172e5c}.expense-panel{padding:0 20px}.expense-item{grid-template-columns:35px 1.2fr .8fr .8fr .7fr .5fr;gap:10px}.expense-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#fff0df;color:#e99c37}.priority{font-size:9px;font-weight:700}.priority.essential{color:#e85d67}.priority.important{color:#b07a11}.priority.nice{color:#5c76d5}.funding{font-size:10px;color:#7a8799}.funding b{display:block;color:#33415b;font-size:11px;margin-top:3px}.mini-progress{height:5px;border-radius:10px;background:#edf1f5;overflow:hidden;margin-top:4px}.mini-progress i{display:block;height:100%;background:#39c79a;border-radius:10px}.add-expense{width:100%;border:0;border-top:1px dashed #dce3ec;background:transparent;color:#2576bc;font:600 11px 'DM Sans';padding:15px}.insights-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:17px;margin-top:32px}.savings-body{display:flex;align-items:center;gap:20px}.goal-ring{position:relative;width:112px;height:112px;flex:none}.goal-ring svg{transform:rotate(-90deg);width:112px}.goal-ring circle{fill:none;stroke:#edf0f4;stroke-width:10}.goal-ring .progress{stroke:#8a6dea;stroke-linecap:round;stroke-dasharray:301;stroke-dashoffset:226}.goal-ring div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.goal-ring b{font:700 20px Manrope}.goal-ring span{font-size:9px;color:#8290a6}.savings-body h3{font-size:15px}.savings-body p{font-size:11px;color:#6f7e96;margin:7px 0}.savings-body p b{color:#17264a}.simple-progress{height:6px;width:220px;border-radius:9px;background:#eeeef5;overflow:hidden}.simple-progress i{display:block;height:100%;background:linear-gradient(90deg,#8b6ce8,#b27aee)}.savings-body small{display:block;margin-top:8px;color:#8995a7;font-size:9px}.projections{display:grid;grid-template-columns:repeat(3,1fr);margin-top:20px;border-top:1px solid #edf0f5;padding-top:14px}.projections span,.projections b{display:block}.projections span{font-size:10px;color:#8290a4}.projections b{font-size:12px;margin-top:4px}.dots{border:0;background:#f6f8fb;border-radius:7px;color:#8c98a9;padding:4px 8px}.chart-wrap{display:flex;align-items:center;gap:25px;padding:7px 5px}.donut{width:143px;height:143px;border-radius:50%;background:conic-gradient(#44cba1 0 55%,#f8b464 55% 77%,#8c6be9 77% 100%);display:grid;place-items:center}.donut span{width:102px;height:102px;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center}.donut b{font:700 19px Manrope}.donut small{color:#8b96a8;font-size:9px}.legend{flex:1}.legend p{font-size:10px;display:flex;align-items:center;margin:12px 0;color:#728098}.legend i{width:8px;height:8px;border-radius:50%;margin-right:6px}.legend b{margin-left:auto;font-size:10px;color:#34415b}.l1{background:#44cba1}.l2{background:#f8b464}.l3{background:#8c6be9}dialog{border:0;border-radius:18px;padding:0;box-shadow:0 25px 70px #14284d35;width:min(470px,92vw)}dialog::backdrop{background:#12204475}.modal-inner{padding:26px}.modal-inner h2{font-size:20px}.modal-inner p{color:#79869a;font-size:12px}.modal-inner label{font-size:11px;font-weight:700;color:#637187;display:block;margin-top:14px}.modal-inner input,.modal-inner select{width:100%;height:40px;margin-top:6px;border:1px solid #dfe5ee;border-radius:8px;padding:0 11px;font:12px 'DM Sans'}.modal-inner .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-submit{width:100%;margin-top:21px;padding:12px;border:0;border-radius:9px;background:#172e5c;color:white;font:700 12px 'DM Sans'}.close{float:right;border:0;background:#f4f6f9;border-radius:7px;width:28px;height:28px;font-size:20px;color:#718098}.mobile-add{display:none}@media(max-width:1050px){.sidebar{width:66px;padding:24px 9px}.brand{padding:0 5px 30px}.brand>div+div,.side-tip,.profile>div:not(.avatar),.profile button,nav a:not(.active)::after{display:none}.brand-mark{width:38px}nav a{font-size:0;padding:12px;text-align:center}nav a i{width:auto}.profile{padding:15px 7px}.profile .avatar{width:32px}main{margin-left:66px;padding:28px}.kpis{grid-template-columns:repeat(2,1fr)}.pay-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){body{padding-bottom:65px}.sidebar{position:fixed;z-index:10;inset:auto 0 0;width:100%;height:61px;padding:7px 10px;display:block;border-top:1px solid #e7ecf4}.brand,.profile,.side-tip{display:none}nav{display:flex;justify-content:space-around}nav a{padding:5px 4px;font-size:0;border-radius:8px}nav a i{font-size:18px}main{margin:0;padding:21px 16px}header{align-items:flex-start}.header-actions .icon-btn{display:none}.primary{font-size:0;width:38px;height:38px;padding:0}.primary:first-letter{font-size:19px}.balance-hero{display:block;padding:21px;min-height:184px}.hero-divider{display:none}.hero-meta{margin-top:19px;gap:25px}.hero-art{right:10px}.kpis{gap:9px;margin-bottom:31px}.kpi{min-height:117px;padding:13px}.kpi h3{font-size:15px;margin:9px 0}.kpi small{font-size:9px}.pay-grid{display:flex;overflow:auto;padding-bottom:4px}.pay-card{min-width:248px}.dashboard-grid,.insights-grid{grid-template-columns:1fr}.expense-item{grid-template-columns:33px 1fr auto}.expense-item .priority,.expense-item .funding,.expense-item .due{display:none}.savings-body{gap:12px}.goal-ring{transform:scale(.85);margin-left:-8px}.simple-progress{width:160px}.chart-wrap{justify-content:center}.mobile-add{display:grid;place-items:center;position:fixed;z-index:11;right:17px;bottom:71px;width:46px;height:46px;border:0;border-radius:50%;background:#16bba7;color:white;font-size:25px;box-shadow:0 7px 18px #12b69b66}}
/* ROWgoals brand identity — keeps the existing mark dimensions and layout. */
.brand-mark{background-image:url("apple-touch-icon.png"),linear-gradient(135deg,#1ccebb,#0ca5c4);background-size:cover,100%;background-position:center;background-repeat:no-repeat;color:transparent;font-size:0;overflow:hidden}
/* Release identity */
.brand .app-version{display:inline-flex;margin-top:5px;padding:2px 6px;border:1px solid #dfe8f3;border-radius:999px;background:#f5f9fd;color:#54729b;font:700 8px 'DM Sans';letter-spacing:.35px}
