@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap");:root{--ink:#3d4658;--muted:#8993a5;--pink:#f2b8cf;--pink-dark:#c76891;--pink-deep:#ae527c;--rose-bg:#f8eff4;--blue-bg:#eef3fb;--surface:rgba(255,255,255,.72);--surface-solid:#fdfdff;--line:rgba(255,255,255,.86);--green:#61aa91;--coral:#d98278;--shadow:14px 18px 34px rgba(178,151,169,.18),-8px -8px 22px rgba(255,255,255,.9);--inset:inset 2px 2px 5px rgba(255,255,255,.95),inset -2px -2px 6px rgba(201,181,194,.22)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--rose-bg);color:var(--ink);font-family:DM Sans,sans-serif}body{background:radial-gradient(circle at 10% 5%,#fff8fc 0,transparent 34%),radial-gradient(circle at 100% 90%,#e9eef9 0,transparent 38%),var(--rose-bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;color:inherit}button:disabled{opacity:.6;cursor:wait}.app-shell{min-height:100vh;max-width:1180px;margin:auto;padding:0 34px 60px;position:relative}.app-shell:after,.app-shell:before{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(2px);pointer-events:none}.app-shell:before{width:250px;height:250px;left:-120px;top:25%;background:rgba(244,193,213,.24)}.app-shell:after{width:320px;height:320px;right:-160px;bottom:8%;background:rgba(190,209,239,.32)}.topbar{height:92px;justify-content:space-between}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px;color:#586276;font-size:19px;font-weight:800;letter-spacing:-.4px}.brand-mark{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#ffdcea,#e9aec8);box-shadow:var(--shadow),var(--inset);color:#fff;font-family:Plus Jakarta Sans,sans-serif;font-size:27px}.brand-mark.small{width:38px;height:38px;border-radius:13px;font-size:19px}.top-actions{display:flex;gap:10px}.icon-button{width:43px;height:43px;border-radius:15px;background:var(--surface);box-shadow:var(--shadow),var(--inset);color:#9b7187;font-size:19px;transition:transform .2s,box-shadow .2s}.icon-button:hover{transform:translateY(-2px)}.content{max-width:860px;margin:0 auto}.hero-heading{text-align:left;padding:27px 6px 22px}.eyebrow{letter-spacing:1.8px;font-size:10px;font-weight:800;color:#a78396;margin:0 0 9px;text-transform:uppercase}.hero-heading h1,.subpage-heading h1{font:800 35px Plus Jakarta Sans,sans-serif;letter-spacing:-1.5px;margin:0 0 9px;text-transform:capitalize;color:#4a5365}.hero-heading .status-pill{margin-left:2px}.paper-card{border:1px solid var(--line);border-radius:27px;background:var(--surface);box-shadow:var(--shadow),var(--inset);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.balance-card{padding:34px 38px;margin-bottom:22px;background:linear-gradient(135deg,rgba(255,255,255,.87),rgba(250,239,247,.69));position:relative;overflow:hidden}.balance-card:after{content:"";position:absolute;width:170px;height:170px;right:-55px;top:-70px;border-radius:50%;background:rgba(239,185,208,.16)}.balance-label{display:block;font-size:10px;letter-spacing:1.8px;color:#9a91a1;font-weight:800}.balance-card strong{display:block;position:relative;z-index:1;font:800 clamp(40px,8vw,65px) Plus Jakarta Sans,sans-serif;letter-spacing:-3px;color:#4d5365;margin:13px 0 2px}.decimal{color:var(--muted);font-size:14px}.balance-lines{display:flex;gap:28px;margin-top:25px;font-size:12px;color:var(--muted)}.positive{color:var(--green)}.negative{color:var(--coral)}.quick-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.action-button{display:flex;flex-direction:column;text-align:left;padding:20px 22px;border-radius:21px;background:rgba(255,255,255,.62);box-shadow:var(--shadow),var(--inset);border:1px solid var(--line);transition:transform .2s,box-shadow .2s}.action-button:hover,.history-link:hover,.month-row:hover{transform:translateY(-3px)}.action-button span{font-size:28px;margin-bottom:6px}.action-button b{font-size:15px;color:#536075}.action-button small{color:var(--muted);margin-top:5px;font-size:12px}.action-button.add span{color:var(--green)}.action-button.subtract span{color:var(--coral)}.recent-card{padding:18px 20px;margin-top:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.section-heading .text-button{margin:0;font-size:11px}.recent-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-top:1px solid rgba(228,219,227,.7)}.recent-row>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1 1}.recent-row small{color:var(--muted);font-size:11px}.recent-row strong{font-size:13px}.history-link{width:100%;display:flex;align-items:center;gap:15px;margin-top:23px;padding:18px 20px;border-radius:20px;background:rgba(255,255,255,.58);text-align:left;border:1px solid var(--line);box-shadow:var(--shadow),var(--inset);transition:transform .2s}.history-link>span:first-child{font-size:21px;color:var(--pink-dark)}.history-link span:nth-child(2){display:flex;flex-direction:column;gap:4px}.history-link small{color:var(--muted);font-size:11px}.history-link strong{margin-left:auto;font-size:24px;color:#c99aad}.text-button{margin:17px auto 0;color:var(--pink-dark)}.close-month-link,.text-button{display:block;background:none;font-weight:700;font-size:12px}.close-month-link{margin:22px auto 0;color:var(--coral)}.status-pill{display:inline-block;border-radius:30px;padding:6px 11px;font-size:10px;font-weight:800;text-transform:capitalize;box-shadow:var(--inset)}.status-pill.open{background:#e2f3ed;color:var(--green)}.status-pill.closed{background:#f0edf2;color:#887681}.empty-card{text-align:center;padding:43px 25px}.empty-card h2{font:700 22px Plus Jakarta Sans,sans-serif;margin:10px 0}.empty-card p{color:var(--muted)}.empty-icon{font-size:34px;color:var(--pink-dark)}.primary-button{background:linear-gradient(145deg,#dc91b0,#c76891);color:#fff;padding:13px 21px;border-radius:14px;font-weight:800;box-shadow:8px 9px 18px rgba(184,103,137,.22),var(--inset);transition:transform .2s}.primary-button:hover{transform:translateY(-2px)}.primary-button.coral{background:linear-gradient(145deg,#e99b8f,#d2756b)}.primary-button.full{width:100%;margin-top:8px}.secondary-button{background:rgba(255,255,255,.64);border:1px solid var(--line);color:var(--pink-dark);padding:10px 14px;border-radius:12px;font-weight:800;box-shadow:var(--inset)}.subpage{max-width:860px}.back-button{background:none;color:var(--pink-dark);font-weight:800;margin:25px 0}.subpage-heading{margin:10px 0 30px}.subpage-heading h1{font-size:39px}.subpage-heading .muted{margin-top:9px}.muted{color:var(--muted);line-height:1.55}.month-list{display:grid;grid-gap:14px;gap:14px}.month-row{display:flex;align-items:center;padding:20px;cursor:pointer;transition:transform .2s;background:var(--surface-solid)}.month-row h2{font:700 20px Plus Jakarta Sans,sans-serif;margin:8px 0 4px;text-transform:capitalize;color:#505b6e}.month-row small{color:var(--muted);font-size:11px}.month-total{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:4px}.month-total b{font:700 16px Plus Jakarta Sans,sans-serif}.row-menu{background:none;color:#c393a7;margin-left:18px;font-size:17px}.modal-backdrop{position:fixed;z-index:10;inset:0;background:rgba(63,54,67,.2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center}.modal{position:relative;background:rgba(253,250,253,.94);width:min(100%,540px);max-height:92vh;overflow:auto;padding:32px 27px 29px;border:1px solid rgba(255,255,255,.95);border-radius:29px 29px 0 0;box-shadow:0 -15px 55px rgba(101,75,94,.2),inset 2px 2px 7px #fff}.modal.wide{width:min(100%,720px)}.modal h2{font:800 27px Plus Jakarta Sans,sans-serif;letter-spacing:-1px;margin:0 0 22px;color:#4d5669}.close-button{position:absolute;right:18px;top:15px;background:#f9e8f0;width:34px;height:34px;border-radius:12px;font-size:22px;color:#a97c91;box-shadow:var(--inset)}.entry-form{display:grid;grid-gap:18px;gap:18px}label{display:grid;grid-gap:7px;gap:7px;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid rgba(226,211,222,.8);background:rgba(255,255,255,.8);border-radius:13px;padding:12px;color:var(--ink);outline:none;box-shadow:inset 2px 2px 5px rgba(215,201,212,.2),inset -2px -2px 5px #fff}input:focus,select:focus,textarea:focus{border-color:#db9bb5;box-shadow:0 0 0 3px #f8dce8}textarea{resize:vertical}.optional{font-weight:400;color:var(--muted);font-size:11px}.form-hint{margin:0;color:var(--muted);font-size:13px}.duration-picker{display:flex;align-items:flex-end;gap:10px}.duration-picker label{flex:1 1}.duration-picker>span{font-size:24px;padding-bottom:9px;color:var(--muted)}.form-error{color:#bd4c55;font-size:13px;margin:0}.confirm-box{text-align:center}.mini-summary{display:flex;justify-content:center;gap:25px;padding:18px;background:#faedf4;border-radius:15px;margin:20px 0;box-shadow:var(--inset)}.mini-summary span{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.mini-summary b{color:var(--ink);font-size:15px}.detail-toolbar{display:flex;justify-content:space-between;align-items:center;margin:-8px 0 15px}.detail-summary{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-gap:10px;gap:10px;padding:17px;background:#faedf4;border-radius:17px;margin-bottom:20px;box-shadow:var(--inset)}.detail-summary div{display:flex;flex-direction:column;gap:4px}.detail-summary small,.detail-summary span{color:var(--muted);font-size:10px}.detail-summary b{font:700 15px Plus Jakarta Sans,sans-serif}.entries-list{display:grid;grid-gap:4px;gap:4px;max-height:40vh;overflow:auto}.entry-row{display:flex;align-items:center;gap:10px;padding:13px 5px;border-bottom:1px solid rgba(228,219,227,.75)}.entry-sign{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-weight:800;box-shadow:var(--inset)}.entry-sign.plus{background:#e2f3ed;color:var(--green)}.entry-sign.minus{background:#fbe7e2;color:var(--coral)}.entry-info{display:flex;flex-direction:column;gap:4px;flex:1 1}.entry-info b{font-size:12px}.entry-info small{color:var(--muted);font-size:10px}.entry-row>strong{font-size:12px}.edit-button{background:none;color:var(--pink-dark);font-size:11px;font-weight:700}.modal-footer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.danger-text{background:none;color:#bd5967;font-weight:700;font-size:12px}.centered-button{margin:auto;display:block}.centered{text-align:center}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,420px);padding:42px 34px;text-align:center}.login-card .brand-mark{margin-bottom:18px}.login-card h1{font:800 29px Plus Jakarta Sans,sans-serif;letter-spacing:-1px;margin:8px 0}.login-card .muted{margin:0 0 25px}.login-card form{text-align:left;display:grid;grid-gap:15px;gap:15px}.loading-screen{min-height:100vh;display:grid;place-items:center;align-content:center;grid-gap:18px;gap:18px;color:var(--muted)}.toast{position:fixed;z-index:20;top:20px;left:50%;transform:translateX(-50%);background:#4d5363;color:#fff;padding:12px 18px;border-radius:13px;box-shadow:var(--shadow);font-size:12px}.settings-list{overflow:hidden}.settings-list>a,.settings-list>button,.settings-upload{display:flex;align-items:center;gap:15px;padding:19px 20px;width:100%;background:transparent;border-bottom:1px solid rgba(228,219,227,.7);text-align:left;color:var(--pink-dark)}.settings-list>a:last-child,.settings-list>button:last-child{border:0}.settings-list span{display:flex;flex-direction:column;gap:4px;color:var(--ink);flex:1 1}.settings-list small{color:var(--muted);font-size:11px}.settings-upload{cursor:pointer}.settings-upload input{display:none}.audit-list{margin-top:15px;padding:16px 18px}.audit-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(228,219,227,.7);font-size:11px}.audit-row:last-child{border-bottom:0}.audit-row b{color:var(--pink-dark)}.audit-row span{color:var(--muted);text-align:right}.settings-note{text-align:center;color:var(--muted);font-size:11px;margin-top:25px}@media (min-width:700px){.modal-backdrop{align-items:center}.modal{border-radius:29px}.home-content{padding-top:25px}.app-shell{padding-left:55px;padding-right:55px}}@media (max-width:520px){.app-shell{padding-left:17px;padding-right:17px}.topbar{height:76px}.hero-heading h1{font-size:29px}.balance-card{padding:28px 18px}.balance-card strong{letter-spacing:-2px}.balance-lines{gap:12px;flex-direction:column}.action-button{padding:17px}.subpage-heading h1{font-size:34px}.detail-summary{grid-template-columns:1fr 1fr}.detail-summary div:first-child{grid-column:1/-1}.modal{padding-left:20px;padding-right:20px}.month-row{padding:16px 13px}.month-row h2{font-size:18px}.month-total{display:none}}.icon-button{background:rgba(255,255,255,.28);box-shadow:8px 9px 18px rgba(178,151,169,.1),inset 1px 1px 3px rgba(255,255,255,.7)}.icon-button:hover{background:rgba(255,255,255,.42)}.topbar{justify-content:flex-end;position:-webkit-sticky;position:sticky;top:0;z-index:5}.hero-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.hero-heading-row>div{min-width:0}.hero-heading-row .icon-button{flex:none;margin-top:1px}.home-secondary-actions{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:20px}.home-secondary-actions .close-month-link,.home-secondary-actions .text-button{margin:0;padding:10px 15px;border-radius:12px;font-size:11px;font-weight:800}.home-secondary-actions .text-button{background:rgba(255,255,255,.44);border:1px solid var(--line);box-shadow:var(--inset)}.home-secondary-actions .text-button span{font-size:15px;margin-left:4px}.home-secondary-actions .close-month-link{background:rgba(232,169,166,.16);border:1px solid rgba(232,169,166,.28)}.home-content{padding-top:0}.home-secondary-actions{gap:30px;margin-top:24px}.home-secondary-actions .close-month-link,.home-secondary-actions .text-button{background:transparent;border:0;box-shadow:none;padding:9px 7px;min-height:38px}.home-secondary-actions .text-button{color:#ad6687}.home-secondary-actions .close-month-link{color:var(--coral)}.home-secondary-actions .close-month-link:hover,.home-secondary-actions .text-button:hover{text-decoration:underline;text-underline-offset:4px}.home-secondary-actions .action-icon{display:inline-grid;place-items:center;width:17px;height:17px;margin-right:7px;vertical-align:-4px}.home-secondary-actions .action-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.home-secondary-actions .close-month-link .action-icon,.home-secondary-actions .close-month-link .action-icon svg{width:18px;height:18px}.history-link .history-icon{display:grid;place-items:center;width:24px;height:24px}.history-link .history-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.subpage-heading{position:relative;padding-right:55px}.subpage-close{position:absolute;right:0;top:0;width:43px;height:43px;border-radius:15px;background:rgba(255,255,255,.28);box-shadow:8px 9px 18px rgba(178,151,169,.1),inset 1px 1px 3px rgba(255,255,255,.7);color:#9b7187;font-size:27px;line-height:1;transition:transform .2s,background .2s}.subpage-close:hover{transform:translateY(-2px);background:rgba(255,255,255,.42)}.subpage-heading{padding:27px 55px 22px 0;margin:0 0 30px}.subpage-close{top:27px}.settings-list{display:grid;grid-gap:12px;gap:12px;background:transparent;border:0;box-shadow:none;overflow:visible}.settings-list>a,.settings-list>button,.settings-upload{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow),var(--inset)}.settings-list>a:last-child,.settings-list>button:last-child{border:1px solid var(--line)}.row-menu{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#c47b91;background:transparent}.row-menu svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.row-menu:hover{background:rgba(232,169,166,.16)}.month-row>.row-menu{align-self:center;flex:0 0 34px}.month-row>.month-total+.row-menu{margin-left:18px}@media (max-width:520px){.month-row>.row-menu{margin-left:auto}}.month-row{position:relative;padding-right:70px}.month-row>.row-menu{position:absolute;right:20px;top:50%;margin:0;transform:translateY(-50%)}.month-row>.row-menu:hover{transform:translateY(-50%) scale(1.04)}.hero-heading h1,.month-row h2,.subpage-heading h1{text-transform:none}