:root{--ink:#302731;--muted:#817681;--paper:#f7f2f5;--surface:#fffdfd;--surface-2:#f1e8ed;--line:#e7dce2;--plum:#7c526f;--plum-dark:#382b35;--rose:#c76e8b;--rose-soft:#f5e0e7;--green:#4f8b77;--green-soft:#dff0e8;--gold:#b98232;--danger:#b74559;--shadow:0 18px 42px #4830401a}*{box-sizing:border-box}html{min-height:100%;color:var(--ink);background:#dfd7dc}body{background:#dfd7dc;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #c76e8b47}.loading{background:var(--paper);min-height:100vh;color:var(--muted);place-items:center;font-weight:750;display:grid}.app-shell{width:min(100%,480px);min-height:100vh;padding-bottom:calc(92px + env(safe-area-inset-bottom));background:linear-gradient(180deg, #fbf7f9 0, var(--paper) 340px);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 55px #2d1f2924}.app-header{min-height:134px;padding:calc(22px + env(safe-area-inset-top)) 21px 21px;color:#fff;background:radial-gradient(circle at 85% 10%,#ffffff21,#0000 34%),linear-gradient(135deg,#382b35,#65485d);justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.app-header h1{letter-spacing:-.025em;margin:5px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:27px;font-weight:500}.app-header span{color:#d8cbd3;font-size:12px}.kicker{color:var(--rose);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:10px;font-weight:900}.app-header .kicker{color:#e8a9bb}.profile-button{color:#fff;background:#ffffff1c;border:1px solid #ffffff42;border-radius:17px;flex:0 0 47px;width:47px;height:47px;font-family:Georgia,serif;font-size:22px}.view{gap:13px;padding:15px;display:grid}.balance-card{color:#fff;min-height:190px;box-shadow:var(--shadow);background:linear-gradient(145deg,#865b78,#523c4e);border-radius:24px;padding:24px}.balance-card p,.finance-hero>p,.plan-hero>p,.notes-hero>p{color:#e5bac7;letter-spacing:.14em;margin:0;font-size:10px;font-weight:900}.balance-card strong{letter-spacing:-.04em;margin:11px 0 5px;font-size:39px;display:block}.balance-card>div>span{color:#ddced6;font-size:12px}.balance-split{border-top:1px solid #ffffff26;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;padding-top:17px;display:grid}.balance-split span{color:#d8cbd3;font-size:11px}.balance-split b{color:#fff;margin-bottom:4px;font-size:18px;display:block}.today-summary{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.today-summary article{border:1px solid var(--line);min-height:108px;color:var(--plum);background:var(--surface);text-align:center;border-radius:19px;flex-direction:column;justify-content:center;align-items:center;padding:12px 7px;display:flex}.today-summary strong{color:var(--ink);margin:7px 0 2px;font-size:24px}.today-summary span{color:var(--muted);font-size:10px}.section-card{border:1px solid var(--line);background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 8px 25px #4830400d}.section-card>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:61px;padding:15px 18px;display:flex}.section-card>header h2{margin:0;font-family:Georgia,serif;font-size:19px;font-weight:550}.section-card>header button{color:var(--plum);background:0 0;border:0;font-size:12px;font-weight:850}.section-card>div{padding:2px 15px}.list-row{border-top:1px solid #eee6ea;align-items:center;gap:11px;min-height:70px;padding:12px 2px;display:flex}.list-row:first-child{border-top:0}.list-row>div{flex:1;min-width:0}.list-row strong,.list-row small{display:block}.list-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.list-row small{color:var(--muted);text-transform:capitalize;margin-top:5px;font-size:10px}.list-row>button:not(.task-check):not(.paid-button){color:#a497a0;background:0 0;border:0;border-radius:10px;flex:0 0 33px;place-items:center;width:33px;height:33px;padding:0;display:grid}.row-icon{border-radius:13px;flex:0 0 40px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.row-icon.lavender{color:var(--plum);background:#eee5f2}.row-icon.green{color:var(--green);background:var(--green-soft)}.row-icon.rose{color:var(--danger);background:var(--rose-soft)}.task-check{color:#fff;background:#fff;border:1.5px solid #c9bbc4;border-radius:9px;flex:0 0 27px;place-items:center;width:27px;height:27px;padding:0;display:grid}.task-row.done .task-check{border-color:var(--green);background:var(--green)}.task-row.done strong{color:#a79da4;text-decoration:line-through}.money{text-align:right;min-width:72px}.money b,.money small{display:block}.money b{font-size:13px}.finance-row.income .money b{color:var(--green)}.finance-row.overdue .money small{color:var(--danger);font-weight:800}.paid-button{min-width:47px;height:31px;color:var(--plum);background:#fff;border:1px solid #cdbfc8;border-radius:10px;padding:0 9px;font-size:10px;font-weight:850}.finance-row.paid .paid-button{color:var(--green);background:var(--green-soft);border-color:#b7d3c8}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:118px;padding:20px;display:flex}.empty span{width:35px;height:35px;color:var(--green);background:var(--green-soft);border-radius:50%;place-items:center;display:grid}.empty p{max-width:270px;color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.5}.month-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;padding:18px 14px 20px}.month-card>header{justify-content:space-between;align-items:center;padding:0 3px 16px;display:flex}.month-card h2{margin:0;font-family:Georgia,serif;font-size:23px;font-weight:500}.month-card>header button{width:37px;height:37px;color:var(--plum);background:var(--surface-2);border:0;border-radius:12px;font-size:25px}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.weekdays span{color:var(--muted);text-align:center;padding:6px 0 10px;font-size:10px;font-weight:850}.calendar-grid button,.calendar-grid .blank{min-width:0;height:58px}.calendar-grid button{background:#f7f2f5;border:1px solid #0000;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;padding:3px 1px;display:flex}.calendar-grid button b{font-size:12px}.calendar-grid button small{min-height:13px;color:var(--muted);margin-top:4px;font-size:7px;font-weight:750}.calendar-grid button small.income{color:var(--green)}.calendar-grid button.today{border-color:var(--rose)}.calendar-grid button.selected{color:#fff;border-color:var(--plum);background:var(--plum)}.calendar-grid button.selected small{color:#eadce5}.month-totals{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:6px;margin-top:16px;padding-top:15px;display:grid}.month-totals span{color:var(--muted);text-align:center;font-size:9px}.month-totals b{color:var(--ink);margin-bottom:4px;font-size:14px;display:block}.finance-hero,.plan-hero,.notes-hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(145deg,#3a2d37,#674b60);border-radius:24px;padding:24px 21px}.finance-hero h2,.plan-hero h2,.notes-hero h2{margin:7px 0 19px;font-family:Georgia,serif;font-size:25px;font-weight:500;line-height:1.15}.finance-hero>div{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.finance-hero>div span{color:#d9cbd3;text-align:center;font-size:9px}.finance-hero>div b{color:#fff;margin-bottom:5px;font-size:15px;display:block}.finance-hero footer{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:19px;display:grid}.finance-hero footer button{color:#eee3ea;background:#ffffff12;border:1px solid #ffffff2b;border-radius:10px;min-height:34px;padding:0 5px;font-size:9px;font-weight:800}.plan-hero>div{grid-template-columns:1fr 1fr;gap:9px;display:grid}.plan-hero button,.notes-hero button{min-height:44px;color:var(--plum-dark);background:#fff;border:0;border-radius:13px;justify-content:center;align-items:center;gap:7px;font-size:11px;font-weight:850;display:flex}.notes-hero button{width:130px}.notes-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.notes-grid>.empty{border:1px solid var(--line);background:var(--surface);border-radius:22px;grid-column:1/-1;min-height:220px}.note-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;min-height:180px;padding:18px;position:relative;box-shadow:0 8px 22px #4830400d}.note-card:nth-child(3n+2){background:#f6ebef}.note-card>button{color:#a695a0;background:0 0;border:0;place-items:center;width:31px;height:31px;display:grid;position:absolute;top:9px;right:9px}.note-card>span{color:var(--rose);text-transform:uppercase;font-size:8px;font-weight:900}.note-card h3{margin:13px 0 8px;font-family:Georgia,serif;font-size:17px}.note-card p{color:var(--muted);white-space:pre-wrap;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.bottom-nav{z-index:30;width:min(100%,480px);padding:7px 5px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffdfdf0;border-top:1px solid #70576726;grid-template-columns:repeat(5,1fr);margin:0 auto;display:grid;position:fixed;inset:auto 0 0}.bottom-nav button{color:#948892;background:0 0;border:0;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:56px;padding:3px;display:flex}.bottom-nav button span{font-size:9px;font-weight:800}.bottom-nav button.active{color:var(--plum);background:var(--surface-2)}.floating-add{z-index:32;right:max(16px,50vw - 224px);bottom:calc(82px + env(safe-area-inset-bottom));border:3px solid var(--paper);color:#fff;background:var(--rose);border-radius:18px;place-items:center;width:51px;height:51px;padding:0;display:grid;position:fixed;box-shadow:0 10px 25px #87485f4d}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#23192085;justify-content:center;align-items:flex-end;padding-top:40px;display:flex;position:fixed;inset:0}.modal{width:min(100%,480px);max-height:92vh;padding:20px 19px calc(25px + env(safe-area-inset-bottom));background:var(--surface);border-radius:27px 27px 0 0;animation:.22s ease-out rise;overflow:auto;box-shadow:0 -18px 50px #21181e40}.modal>header{justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px;display:flex}.modal h2{margin:5px 0 0;font-family:Georgia,serif;font-size:25px;font-weight:500}.round-button{width:40px;height:40px;color:var(--muted);background:var(--surface-2);border:0;border-radius:13px;place-items:center;display:grid}.choice-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice-grid button{border:1px solid var(--line);min-height:140px;color:var(--plum);text-align:left;background:#faf6f8;border-radius:18px;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:18px;display:flex}.choice-grid b{color:var(--ink)}.choice-grid span{color:var(--muted);font-size:10px;line-height:1.4}.modal-form{gap:13px;display:grid}.field{gap:6px;display:grid}.field>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:900}.field input,.field select,.field textarea{width:100%;min-height:47px;color:var(--ink);background:#fff;border:1px solid #ddd0d8;border-radius:13px;outline:none;padding:0 12px}.field textarea{resize:vertical;min-height:88px;padding-top:12px;line-height:1.45}.field textarea.large-textarea{min-height:190px}.two-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.toggle{border:1px solid var(--line);min-height:47px;color:var(--muted);border-radius:13px;align-items:center;gap:10px;padding:10px 12px;font-size:12px;display:flex}.toggle input{width:19px;height:19px;accent-color:var(--plum)}.save-button{color:#fff;background:var(--plum);border:0;border-radius:14px;min-height:49px;font-weight:850}.settings-list{gap:9px;display:grid}.settings-list button{border:1px solid var(--line);min-height:72px;color:var(--plum);text-align:left;background:#faf6f8;border-radius:16px;align-items:center;gap:13px;padding:13px;display:flex}.settings-list button>span{flex:1;min-width:0}.settings-list b,.settings-list small{display:block}.settings-list b{color:var(--ink)}.settings-list small{color:var(--muted);margin-top:4px;font-size:10px}.settings-list button.danger{color:var(--danger)}.toast{z-index:100;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));color:#fff;background:var(--plum-dark);box-shadow:var(--shadow);border-radius:20px;padding:11px 17px;font-size:11px;font-weight:800;animation:2.4s both toast;position:fixed;transform:translate(-50%)}.login-shell{min-height:100vh;padding:calc(24px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 15% 8%,#c76e8b2e,#0000 28%),linear-gradient(160deg,#f9f3f6,#e9dfe5);place-items:center;display:grid}.login-card{background:#fffdfde8;border:1px solid #ffffffbf;border-radius:30px;width:min(100%,420px);padding:34px 27px;box-shadow:0 28px 65px #442b3b26}.login-logo{border-radius:21px;width:61px;height:61px;margin-bottom:19px;display:block;box-shadow:0 12px 28px #7c526f3d}.login-card h1{margin:9px 0 10px;font-family:Georgia,serif;font-size:31px;font-weight:500;line-height:1.12}.login-card>p:not(.kicker){color:var(--muted);margin:0 0 23px;font-size:13px;line-height:1.55}.login-card form{gap:13px;display:grid}.login-card form label{gap:6px;display:grid}.login-card form label span{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:900}.login-card form input{min-height:49px;color:var(--ink);background:#fff;border:1px solid #d9cbd3;border-radius:14px;outline:none;padding:0 13px}.login-card form>button{color:#fff;background:var(--plum);border:0;border-radius:14px;min-height:50px;font-weight:850}.form-error{color:var(--danger)!important;margin:0!important;font-size:11px!important}.text-button{width:100%;color:var(--plum);background:0 0;border:0;margin:14px 0;padding:7px;font-size:10px;font-weight:800}.login-card>small{color:#9a8e96;text-align:center;margin-top:16px;font-size:9px;display:block}@keyframes rise{0%{opacity:.6;transform:translateY(35px)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,12px)}10%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (max-width:370px){.view{padding:12px}.app-header{padding-left:17px;padding-right:17px}.app-header h1{font-size:24px}.balance-card{padding:21px}.balance-card strong{font-size:34px}.calendar-grid button{height:53px}.calendar-grid button small{font-size:6px}.today-summary span{font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
