@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");:root{--ink:#202c3b;--muted:#7d8999;--line:#e8edf1;--bg:#f6f8fa;--green:#287d62;--greenbg:#e7f4ed;--blue:#4c78c8;--bluebg:#eaf0fc;--purple:#8263c8;--purplebg:#f0eafa;--orange:#c47c47;--orangebg:#fbefe5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px}.shell{min-height:100vh;display:flex}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 30px}.brandmark{width:37px;height:37px;background:#24785f;color:#fff;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:19px}.brand b,.profile b{display:block;font-size:14px}.brand small,.profile small{display:block;color:#929cab;font-size:9px;letter-spacing:1px;margin-top:4px}.profile{display:flex;align-items:center;gap:9px;background:#f7f9fa;border:1px solid #edf0f2;padding:11px;border-radius:12px;margin-bottom:28px}.profile>div:nth-child(2){flex:1 1}.profile small{letter-spacing:0;font-size:10px}.avatar{width:33px;height:33px;border-radius:50%;background:#dbe9e1;color:#287d62;display:grid;place-items:center;font-size:11px;font-weight:700}.avatar.small{width:31px;height:31px}.navtitle{font-size:10px;letter-spacing:1.2px;color:#a0a9b5;padding:0 12px 10px}.navitem{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:12px;padding:12px;border-radius:9px;color:#758194;text-align:left;margin-bottom:4px;cursor:pointer;font:inherit}.navitem.active{background:#e8f4ed;color:#27775e;font-weight:700}.sidebottom{margin-top:auto;display:flex;gap:10px;padding:14px 10px;border-top:1px solid var(--line);color:#388168}.sidebottom b{display:block;font-size:12px;color:#344355}.sidebottom small{display:block;font-size:11px;line-height:1.5;color:#8b96a4;margin-top:5px}.content{flex:1 1;min-width:0;padding:0 32px 20px}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.crumb,.slash{color:#99a3b0}.topactions{display:flex;align-items:center;gap:14px}.iconbutton{background:#fff;border:1px solid var(--line);color:#7c8997;width:35px;height:35px;border-radius:10px;display:grid;place-items:center}.pagehead{display:flex;justify-content:space-between;align-items:end;padding:27px 0 22px;gap:15px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#2e8668;font-weight:700}.pagehead h1{font-family:Manrope,sans-serif;font-size:27px;letter-spacing:-.7px;margin:8px 0}.pagehead p,.panelhead p{color:#8994a2;margin:0;font-size:12px}.headtools{display:flex;gap:10px}.headtools select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:0 13px;color:#566274}.primary{display:flex;align-items:center;gap:8px;background:#287d62;color:#fff;border:0;border-radius:9px;padding:11px 14px;font-weight:600;font-size:12px}.notice{display:flex;gap:12px;align-items:flex-start;background:#fff8e8;border:1px solid #f1e2bb;color:#7d632d;padding:12px 14px;border-radius:11px;margin-bottom:18px}.notice div{flex:1 1}.notice b,.notice span{display:block}.notice b{font-size:12px;margin-bottom:4px}.notice span{font-size:11px;line-height:1.5}.notice button{background:none;border:0;color:#8e7949;font-size:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:15px;gap:15px;margin-bottom:17px}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:13px}.metric{padding:17px 18px;min-width:0}.metrichead{display:flex;justify-content:space-between;align-items:center;color:#7d8997;font-size:11px;gap:6px}.metricicon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center}.metric strong{display:block;font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-.7px;margin:13px 0 6px;white-space:nowrap}.metric>small{font-size:10px;color:#9aa4b0;line-height:1.4;display:block}.green{background:var(--greenbg);color:var(--green)}.orangebg,.peach{background:var(--orangebg);color:var(--orange)}.purple,.purplebg{background:var(--purplebg);color:var(--purple)}.blue,.bluebg{background:var(--bluebg);color:var(--blue)}.gridmain{display:grid;grid-template-columns:1.25fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}.gridbottom{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:16px;gap:16px}.panel{padding:19px;min-width:0}.panelhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:20px}.panelhead h2{font-size:14px;margin:0 0 6px;font-weight:700}.textbutton{border:0;background:none;color:#39866c;display:flex;align-items:center;gap:5px;font-weight:600;font-size:11px;white-space:nowrap}.chart{height:195px;display:flex;gap:10px}.ylabels{display:flex;flex-direction:column;justify-content:space-between;color:#a3acb7;font-size:10px;padding-bottom:24px}.bars{flex:1 1;display:flex;align-items:stretch;justify-content:space-around;border-bottom:1px solid #edf0f2;background:repeating-linear-gradient(180deg,transparent 0,transparent 47px,#f0f3f5 48px);gap:6px}.month{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1 1;min-width:0}.barpair{height:166px;display:flex;align-items:flex-end;gap:3px}.bar{width:10px;min-height:2px;border-radius:4px 4px 0 0}.bar.income,.incomeDot{background:#64b797}.bar.expense,.expenseDot{background:#eab18a}.month small{height:24px;padding-top:8px;color:#9ba5b1;font-size:10px}.legend{display:flex;justify-content:center;gap:18px;margin-top:13px;color:#7e8997;font-size:10px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%}.category{margin-bottom:18px}.catrow{display:flex;align-items:center;gap:8px;font-size:10px;color:#7d8997}.catrow span:nth-child(2){flex:1 1}.catrow b{font-size:10px;color:#354153}.catdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.orangebg{background:var(--orangebg)}.greenbg{background:var(--greenbg);color:var(--green)}.track{height:5px;background:#f0f2f4;border-radius:10px;margin-top:9px;overflow:hidden}.track span{height:100%;display:block;border-radius:10px}.purplebar{background:#a38bd9}.orangebar{background:#eab18a}.bluebar{background:#82a2e5}.greenbar{background:#69b89a}.footnote{font-size:10px;color:#a0a9b4;line-height:1.5;margin-top:4px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:left;color:#9aa4b0;font-weight:500;font-size:10px;padding:0 8px 12px;border-bottom:1px solid var(--line)}td{padding:13px 8px;border-bottom:1px solid #f0f2f4;color:#697688}td b{color:#344153;font-size:11px}.right{text-align:right}.txicon{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;vertical-align:middle;margin-right:8px}.pill{display:inline-block;padding:5px 8px;border-radius:6px;font-size:9px}.greenpill{background:var(--greenbg);color:var(--green)}.bluepill{background:var(--bluebg);color:var(--blue)}.purplepill{background:var(--purplebg);color:var(--purple)}.orangepill{background:var(--orangebg);color:var(--orange)}.positive{color:#2f906c}.quick{width:100%;display:flex;align-items:center;gap:10px;background:#fff;border:0;border-bottom:1px solid #edf0f2;padding:13px 0;text-align:left;color:#8c98a5;cursor:pointer}.quick:last-child{border-bottom:0}.quick>span:nth-child(2){flex:1 1}.quick b,.quick small{display:block}.quick b{font-size:11px;color:#3c4858;margin-bottom:5px}.quick small{font-size:10px;color:#98a2ae}.quickicon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center}footer{display:flex;justify-content:space-between;color:#a1aab5;font-size:10px;padding:23px 2px 5px}@media(max-width:1150px){.sidebar{width:220px}.content{padding:0 20px 20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.gridbottom,.gridmain{grid-template-columns:1fr}}@media(max-width:720px){.shell,.sidebar{display:block}.sidebar{width:100%;padding:12px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding-bottom:12px}.navtitle,.profile,.sidebottom{display:none}.sidebar .navitem{display:inline-flex;width:auto;padding:9px;font-size:11px;margin:2px}.content{padding:0 13px 18px}.topbar{height:52px}.pagehead{display:block;padding:20px 0}.pagehead h1{font-size:23px}.headtools{margin-top:15px}.headtools select{min-height:38px}.primary{font-size:11px}.cards{gap:9px}.metric{padding:12px}.metric strong{font-size:20px}.metrichead{font-size:10px}.metric>small{font-size:9px}.panel{padding:13px}.chart{height:180px}.barpair{height:150px}.bar{width:7px}.catrow,.catrow b{font-size:9px}footer{display:block;line-height:1.8}}.login-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at top left,#e8f0ff 0,transparent 45%),#f5f7fb;color:#182230}.login-card{width:100%;max-width:420px;padding:38px;background:#fff;border:1px solid #e6eaf0;border-radius:22px;box-shadow:0 20px 70px rgba(28,43,67,.09)}.login-logo{width:48px;height:48px;border-radius:15px;background:#e9efff;color:#3758a5;display:grid;place-items:center;margin-bottom:26px}.login-kicker{font-size:11px;font-weight:800;letter-spacing:1.6px;color:#62718a}.login-card h1{font-size:29px;letter-spacing:-.8px;margin:10px 0}.login-description{font-size:14px;line-height:1.6;color:#697586;margin:0 0 28px}.login-form{display:flex;flex-direction:column;gap:9px}.login-form label{font-size:13px;font-weight:700;margin-top:8px}.login-form input{border:1px solid #dce2eb;border-radius:10px;padding:13px 14px;font-size:14px;outline:none;background:#fff;color:#182230}.login-form input:focus{border-color:#6c83d8;box-shadow:0 0 0 3px #6c83d81c}.login-form button{border:0;border-radius:10px;padding:14px;margin-top:15px;background:#263f83;color:#fff;font-size:14px;font-weight:700;cursor:pointer}.login-form button:disabled{opacity:.65;cursor:wait}.login-error{color:#b42318;font-size:13px}.login-privacy{display:flex;gap:9px;align-items:flex-start;border-top:1px solid #edf0f4;margin-top:25px;padding-top:18px;font-size:12px;line-height:1.5;color:#637083}.login-privacy svg{flex-shrink:0;color:#398365}.login-footer{font-size:12px;color:#8792a2;margin-top:22px}.badge-neutral{display:inline-block;background:#f3f5f7;color:#7b8796;border-radius:7px;padding:6px 9px;font-size:10px;white-space:nowrap}.balance-positive{color:#287d62!important}.balance-negative,.negative{color:#b7554a!important}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:21px 8px;color:#8c98a6}.empty-state b,.empty-table b{font-size:12px;color:#3c4959}.empty-state span,.empty-table span{font-size:11px;line-height:1.5;max-width:290px}.empty-state .primary{margin-top:3px}.account-list{display:flex;flex-direction:column;gap:0;margin-bottom:13px}.account-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #eef1f4;min-width:0}.account-row:last-child{border-bottom:0}.account-symbol{width:35px;height:35px;flex-shrink:0;border-radius:10px;background:#e9f3ee;color:#43866e;display:grid;place-items:center}.account-main{flex:1 1;min-width:0}.account-main b{display:block;font-size:11px;color:#344153;overflow:hidden;text-overflow:ellipsis}.account-main small{display:block;font-size:10px;color:#9aa4b0;margin-top:4px}.account-row>strong{font-size:12px;white-space:nowrap;color:#344153}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e1e7ec;background:#fff;border-radius:9px;padding:10px 13px;color:#536174;font-size:12px;font-weight:600;cursor:pointer}.primary:disabled,.quick:disabled,.secondary:disabled{opacity:.5;cursor:not-allowed}.fullwidth{width:100%}.movement-actions{display:flex;align-items:center;gap:12px}.movement-search{display:flex;align-items:center;gap:8px;border:1px solid #e5eaf0;background:#fbfcfd;border-radius:8px;padding:8px 10px;margin:-5px 0 15px;color:#94a0ad}.movement-search input{border:0;outline:0;background:transparent;flex:1 1;min-width:0;font:inherit;font-size:11px;color:#364354}.cell-note{display:block;max-width:180px;white-space:normal;font-size:10px;color:#9aa4b0;margin-top:4px}.row-action{border:0;background:transparent;color:#a0a9b4;border-radius:6px;padding:6px;cursor:pointer;display:grid;place-items:center}.row-action:hover{background:#fff0ee;color:#b7554a}.row-action:disabled{opacity:.5;cursor:wait}.empty-table{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 10px;color:#98a3b0;text-align:center}.empty-table .primary{margin-top:5px}.status-message{border-radius:10px;padding:11px 13px;display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;font-size:12px;line-height:1.5}.status-message span{flex:1 1}.status-message button{border:0;background:transparent;color:inherit;cursor:pointer}.success-message{background:#eaf6ef;border:1px solid #cae8d6;color:#276c51}.error-message{background:#fff0ee;border:1px solid #f2d1cc;color:#a43d31}.loading-panel{display:flex;align-items:center;justify-content:center;gap:12px;min-height:220px;color:#738193}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.feature-placeholder{min-height:270px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}.feature-placeholder h2{margin:5px 0 0;font-size:17px}.feature-placeholder p{max-width:620px;font-size:12px;line-height:1.7;color:#7d8997;margin:0 0 8px}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(22,31,45,.42);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.modal-card{width:min(100%,590px);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid #e3e8ee;border-radius:16px;box-shadow:0 25px 100px rgba(20,30,45,.2);padding:22px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:17px;border-bottom:1px solid #edf0f4;margin-bottom:16px}.modal-head h2{font-size:18px;margin:0 0 6px}.modal-head p{font-size:12px;line-height:1.55;color:#7d8997;margin:0;max-width:450px}.data-form{gap:13px}.data-form,.data-form label{display:flex;flex-direction:column}.data-form label{gap:6px;font-size:12px;font-weight:600;color:#435064}.data-form input:not([type=file]),.data-form select,.data-form textarea{width:100%;min-width:0;border:1px solid #dfe5eb;border-radius:8px;padding:10px 11px;background:#fff;color:#283545;font:inherit;font-size:13px;outline:none}.data-form textarea{resize:vertical}.data-form input:focus,.data-form select:focus,.data-form textarea:focus{border-color:#80b29f;box-shadow:0 0 0 3px rgba(63,137,106,.09)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.form-help{background:#f6f8fa;border-radius:8px;padding:10px 11px;margin:0;color:#7d8997;font-size:10px;line-height:1.6}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:6px;padding-top:12px;border-top:1px solid #edf0f4}.csv-instructions{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f7f9fb;border:1px solid #e7edf1;border-radius:9px;font-size:11px;line-height:1.5;color:#657286}.csv-instructions code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:#e9eef3;color:#405066;padding:5px 7px;border-radius:5px;overflow-wrap:anywhere}.file-drop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px;border:1px dashed #cbd7df;border-radius:10px;background:#fbfcfd;color:#398168;cursor:pointer}.file-drop b{font-size:12px;color:#405063}.file-drop span{font-size:10px;color:#8693a1;line-height:1.5;max-width:330px}.file-drop input{max-width:100%;font-size:11px;color:#667586}.quick-note{display:flex;align-items:flex-start;gap:8px;background:#f4f8f6;color:#608474;border-radius:8px;padding:10px;font-size:10px;line-height:1.5;margin-top:10px}.quick-note svg{flex-shrink:0}@media(max-width:720px){.modal-backdrop{padding:8px;align-items:flex-end}.modal-card{max-height:92vh;padding:15px;border-radius:15px}.form-grid{grid-template-columns:1fr}.movement-actions{gap:7px;flex-wrap:wrap}.movement-actions .textbutton{font-size:10px}.account-row>strong{font-size:11px}.account-row{gap:7px}.status-message{font-size:11px}}.row-actions{display:flex;align-items:center;gap:2px}