@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#18231e;background:#f6f7f4;font-synthesis:none;--green: #18664b;--green-dark: #104b38;--green-soft: #e1eee8;--orange: #d97642;--orange-soft: #f9e8de;--ink: #18231e;--muted: #748079;--line: #e3e7e1;--paper: #fff;--radius: 18px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{color:inherit}button,select{cursor:pointer}svg{width:19px;height:19px;stroke-width:1.8}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:Manrope,sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:24px 16px;background:#f0f3ee;border-right:1px solid #e0e5df;z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 28px;font-size:23px;font-weight:800;letter-spacing:-.8px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--green);color:#fff}.brand-mark svg{width:21px;height:21px}.close-mobile{display:none;margin-left:auto;border:0;background:none}.person-picker-wrap{padding:0 4px 24px;border-bottom:1px solid #dde3dc}.person-picker-wrap>label{display:block;margin:0 8px 8px;color:#8a948e;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.person-picker{position:relative;display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 3px 10px #1a382b0a}.avatar{width:29px;height:29px;display:grid;place-items:center;flex:0 0 auto;color:#fff;border-radius:9px;font-size:12px;font-weight:700}.person-picker select{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none}.person-picker>svg{color:#849089;pointer-events:none}nav{display:flex;flex-direction:column;gap:5px;padding-top:23px}nav button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border:0;border-radius:11px;background:transparent;color:#66716b;font-weight:600;text-align:left}nav button:hover{background:#ffffffa6;color:var(--ink)}nav button.active{background:var(--green);color:#fff;box-shadow:0 5px 14px #18664b2b}.sidebar-tip{margin-top:auto;padding:15px;border:1px solid #dce4dd;border-radius:15px;background:#ffffff8c}.sidebar-tip>span{display:grid;place-items:center;width:31px;height:31px;margin-bottom:11px;border-radius:9px;background:var(--green-soft);color:var(--green)}.sidebar-tip strong{display:block;font:700 12px Manrope}.sidebar-tip p{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}main{min-width:0}.topbar{height:92px;display:flex;align-items:center;padding:0 clamp(24px,4vw,58px);border-bottom:1px solid #e5e8e3;background:#f6f7f4e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar>div{flex:1}.topbar p{margin-bottom:2px;color:var(--muted);font-size:12px}.topbar h1{font-size:21px;line-height:1.2;letter-spacing:-.5px}.menu-button{display:none;margin-right:12px;border:0;background:none}.primary-button,.secondary-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border-radius:11px;border:1px solid transparent;font-weight:700;font-size:13px}.primary-button{color:#fff;background:var(--green);box-shadow:0 5px 13px #18664b26}.primary-button:hover{background:var(--green-dark)}.primary-button:disabled{cursor:wait;opacity:.65}.secondary-button{background:#fff;border-color:var(--line)}.secondary-button:hover{border-color:#b8c3bc}.primary-button svg,.secondary-button svg{width:17px;height:17px}.content{max-width:1480px;margin:0 auto;padding:34px clamp(24px,4vw,58px) 60px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{font-size:22px;letter-spacing:-.55px}.section-heading p{margin-top:5px;color:var(--muted);font-size:13px}.month-input{min-height:39px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#53615a}.month-input svg{width:17px}.month-input input{max-width:145px;border:0;outline:0;background:transparent;font-size:12px;font-weight:600;text-transform:capitalize}.period-filter{min-height:42px;display:flex;align-items:center;gap:9px;padding:5px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#53615a}.period-filter>svg{width:17px;flex:0 0 auto}.period-filter>i{color:#9aa39e;font-size:10px;font-style:normal}.period-filter label{display:flex;align-items:center;gap:5px}.period-filter label span{color:#8a948e;font-size:9px;font-weight:700;text-transform:uppercase}.period-filter input{width:126px;border:0;outline:0;background:transparent;font-size:11px;font-weight:600}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.metric{min-height:151px;display:flex;flex-direction:column;padding:20px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:600}.metric-top i{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#f2f4f1;color:#65716a;font-style:normal}.metric strong{margin-top:15px;font:700 clamp(21px,2vw,27px) "Manrope";letter-spacing:-.8px}.metric small{margin-top:auto;color:var(--muted);font-size:10.5px}.metric.dark{color:#fff;border-color:#1d3028;background:#1d3028}.metric.dark .metric-top,.metric.dark small{color:#b8c8c0}.metric.dark .metric-top i{color:#fff;background:#ffffff1a}.metric.green{border-color:#d2e2d8;background:#eaf3ee}.metric.green strong{color:var(--green)}.metric.green .metric-top i{color:var(--green);background:#d5e8dd}.metric.orange{border-color:#efd7ca;background:var(--orange-soft)}.metric.orange strong{color:#ac512c}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff}.forecast-card,.categories-card{min-height:352px;padding:22px}.card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.card-title h3{font-size:15px;letter-spacing:-.25px}.card-title p{margin-top:4px;color:var(--muted);font-size:11px}.card-title>svg{color:#87918b}.legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;white-space:nowrap}.legend span{width:7px;height:7px;margin-left:6px;border-radius:2px}.income-dot,.income-bar{background:var(--green)}.expense-dot,.expense-bar{background:#e3aa81}.bar-chart{height:238px;display:flex;align-items:stretch;gap:clamp(14px,3.5vw,40px);padding:30px 14px 0;border-bottom:1px solid #e7ebe6;background:repeating-linear-gradient(to bottom,transparent 0,transparent 58px,#eef0ed 59px)}.bar-group{min-width:32px;flex:1;display:flex;flex-direction:column;align-items:center}.bars{width:100%;max-width:48px;height:190px;display:flex;align-items:end;justify-content:center;gap:5px}.bars span{width:12px;min-height:0;border-radius:5px 5px 2px 2px;transition:height .25s}.bar-group small{margin-top:9px;color:var(--muted);font-size:10px;text-transform:capitalize}.category-body{height:275px;display:flex;flex-direction:column;justify-content:center}.donut{width:150px;height:150px;display:grid;place-items:center;margin:10px auto 18px;border-radius:50%}.donut:before{content:"";grid-area:1/1;width:104px;height:104px;border-radius:50%;background:#fff}.donut span{z-index:1;grid-area:1/1;display:flex;flex-direction:column;align-items:center;font:700 14px Manrope}.donut small{margin-bottom:3px;color:var(--muted);font:500 9px DM Sans}.category-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}.category-list>div{display:flex;align-items:center;gap:7px;min-width:0;font-size:10px}.category-list span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-list strong{margin-left:auto;font-size:10px}.category-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%}.upcoming-card{grid-column:1 / -1;padding:22px}.text-button{border:0;background:none;color:var(--green);font-size:11px;font-weight:700}.transaction-list{margin-top:17px}.transaction-row{min-height:62px;display:grid;grid-template-columns:36px minmax(130px,1fr) 70px 88px 112px 105px 34px;align-items:center;gap:10px;border-top:1px solid #edf0ec;font-size:12px}.transaction-icon{width:33px;height:33px;display:grid;place-items:center;border-radius:10px}.transaction-icon svg{width:16px}.transaction-icon.income{color:var(--green);background:var(--green-soft)}.transaction-icon.expense{color:#c45c33;background:var(--orange-soft)}.transaction-name{min-width:0}.transaction-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-name small,.transaction-row time{display:block;margin-top:3px;color:var(--muted);font-size:10px}.transaction-row>strong{text-align:right;font-variant-numeric:tabular-nums}.transaction-row>strong.income{color:var(--green)}.status{min-height:26px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:0;border-radius:999px;font-size:9px;font-weight:700}.status.paid{color:var(--green);background:var(--green-soft)}.status.planned{color:#8c6b23;background:#f7efdc}.status svg{width:11px;height:11px}.person-move{min-width:0;height:30px;padding:0 7px;border:1px solid var(--line);border-radius:8px;outline:0;background:#fafbf9;color:#53615a;font-size:10px;font-weight:600}.person-move:focus{border-color:#7cab96}.empty-card{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9ba49f;text-align:center}.empty-card p{max-width:310px;font-size:11px;line-height:1.5}.entries-card{padding:20px 22px}.filters{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:17px}.search{width:min(380px,100%);height:40px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--line);border-radius:11px;color:#87918b}.search svg{width:16px}.search input{width:100%;border:0;outline:none;font-size:12px}.segmented{display:flex;padding:3px;border-radius:10px;background:#f1f3f0}.segmented button{padding:7px 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}.segmented button.active{color:var(--ink);background:#fff;box-shadow:0 1px 5px #18231e14}.transaction-list.full{margin-top:0}.icon-button{width:34px;height:34px;display:grid;place-items:center;padding:0;border:0;border-radius:9px;background:transparent}.icon-button:hover{background:#f1f3f0}.icon-button.danger{color:#b95b4f}.icon-button.danger svg{width:15px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.person-card{position:relative;min-height:180px;display:flex;flex-direction:column;align-items:center;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:center}.person-card.selected{border-color:#a9c9ba;box-shadow:inset 0 0 0 1px #a9c9ba}.large-avatar{width:58px;height:58px;display:grid;place-items:center;margin-bottom:13px;border-radius:18px;color:#fff;font:700 21px Manrope}.person-card h3{font-size:15px}.person-card p{margin:4px 0 13px;color:var(--muted);font-size:11px}.person-actions{position:absolute;top:12px;right:12px;display:flex}.person-actions .icon-button svg{width:15px}.active-pill{display:flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;color:var(--green);background:var(--green-soft);font-size:9px;font-weight:700}.active-pill svg{width:11px}.data-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding:20px}.data-tools h3{font-size:14px}.data-tools p{margin-top:4px;color:var(--muted);font-size:11px}.data-tool-actions{display:flex;gap:8px}.data-tool-actions label{cursor:pointer}.data-tool-actions input{display:none}.sync-indicator{position:fixed;right:20px;bottom:18px;z-index:15;display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#ffffffeb;color:var(--muted);box-shadow:0 4px 16px #12231b14;font-size:9px;font-weight:700}.sync-indicator svg{width:13px;height:13px}.sync-indicator.saved{color:var(--green)}.sync-indicator.error{color:#b95834;border-color:#e8c7bb}.access-gate{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef2ed}.access-card{width:min(390px,100%);padding:32px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 22px 65px #122a1f1f}.access-card>.brand-mark{width:42px;height:42px;margin-bottom:16px}.access-card h1{font-size:28px;text-transform:lowercase}.access-card>p{margin:7px 0 24px;color:var(--muted);font-size:12px;line-height:1.5}.access-card form .primary-button{width:100%}.access-card>small{display:block;margin-top:16px;color:var(--muted);font-size:9px;line-height:1.5;text-align:center}.access-error{margin:-7px 0 12px;color:#b95834;font-size:10px}.investment-metrics{margin-bottom:24px}.investment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.investment-card{display:flex;flex-direction:column;padding:21px}.investment-card-head{display:grid;grid-template-columns:42px 1fr 34px;align-items:center;gap:11px;padding-bottom:17px;border-bottom:1px solid var(--line)}.investment-card-head>div{min-width:0}.investment-card-head small{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.investment-card-head h3{margin-top:2px;overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.investment-kind{width:42px;height:42px;display:grid;place-items:center;border-radius:12px}.investment-kind.physical{color:var(--green);background:var(--green-soft)}.investment-kind.service{color:#a85832;background:var(--orange-soft)}.investment-kind svg{width:20px}.investment-numbers{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:18px 0}.investment-numbers>div,.investment-result>div{display:flex;flex-direction:column;gap:4px}.investment-numbers span,.investment-result span{color:var(--muted);font-size:9px;font-weight:600}.investment-numbers strong{font:700 15px Manrope}.investment-result{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:13px;border-radius:12px;background:#f5f7f4}.investment-result strong{font:700 12px Manrope}.positive{color:var(--green)}.negative{color:#b95834}.investment-sale-button{width:100%;margin-top:15px}.investment-sale-button:disabled{cursor:not-allowed;opacity:.45}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:18px;background:#0f1b1585;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(540px,100%);max-height:calc(100vh - 36px);overflow-y:auto;padding:25px;border-radius:21px;background:#fff;box-shadow:0 30px 80px #10221938}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.modal-header h2{font-size:20px}.modal-header p{margin-top:4px;color:var(--muted);font-size:12px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:19px;padding:4px;border-radius:12px;background:#f2f4f1}.type-switch button{height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.type-switch button.active{background:#fff;box-shadow:0 2px 8px #18231e14}.type-switch button.expense.active{color:#b95834}.type-switch button.income.active{color:var(--green)}.field{display:block;margin-bottom:15px}.field>span{display:block;margin-bottom:6px;color:#45524b;font-size:11px;font-weight:700}.field input,.field select{width:100%;height:42px;padding:0 11px;border:1px solid #dfe4df;border-radius:10px;outline:0;background:#fbfcfa;color:var(--ink);font-size:12px}.field input:focus,.field select:focus{border-color:#7cab96;box-shadow:0 0 0 3px #18664b1a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.money-input{display:flex;align-items:center;border:1px solid #dfe4df;border-radius:10px;background:#fbfcfa}.money-input:focus-within{border-color:#7cab96;box-shadow:0 0 0 3px #18664b1a}.money-input b{padding-left:11px;color:var(--muted);font-size:11px}.money-input input{border:0;background:transparent;box-shadow:none!important}.status-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.status-choice button{min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:11px;font-weight:600}.status-choice button.active{color:var(--green);border-color:#9bc3b0;background:#eef6f2}.status-choice svg{width:15px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.color-picker{display:flex;gap:9px}.color-picker button{width:34px;height:34px;display:grid;place-items:center;border:3px solid white;border-radius:50%;box-shadow:0 0 0 1px #d9dfda;color:#fff}.color-picker button.active{box-shadow:0 0 0 2px var(--ink)}.color-picker svg{width:14px}.empty-start{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:20px;text-align:center}.empty-start>svg{width:50px;height:50px;color:var(--green)}.empty-start p{color:var(--muted)}.backdrop{display:none}@media (max-width: 1050px){.metric-grid,.people-grid{grid-template-columns:repeat(2,1fr)}.investment-grid{grid-template-columns:1fr}}@media (max-width: 820px){.app-shell{display:block}.sidebar{position:fixed;left:0;transform:translate(-105%);width:260px;transition:transform .2s ease}.sidebar.open{transform:translate(0)}.close-mobile,.menu-button{display:grid;place-items:center}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:block;border:0;background:#0e1b154d}.dashboard-grid{grid-template-columns:1fr}.upcoming-card{grid-column:auto}.topbar{height:78px}.transaction-row{grid-template-columns:36px 1fr auto;padding:8px 0}.transaction-row time,.transaction-row .status{display:none}.transaction-row>strong{grid-column:3;grid-row:1}.transaction-row>.person-move{grid-column:2;grid-row:2;width:115px}.transaction-row>.icon-button{grid-column:3;grid-row:2;justify-self:end}}@media (max-width: 580px){.topbar{padding:0 16px}.topbar p{display:none}.topbar h1{font-size:18px}.topbar .primary-button{width:40px;padding:0}.topbar .primary-button span{display:none}.content{padding:25px 16px 45px}.section-heading{align-items:flex-start;flex-direction:column}.section-heading h2{font-size:19px}.month-input input{max-width:105px}.period-filter{width:100%;justify-content:space-between;gap:4px}.period-filter>svg{display:none}.period-filter input{width:112px}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric{min-height:135px;padding:15px}.metric strong{font-size:18px}.metric small,.metric-top i{display:none}.forecast-card,.categories-card,.upcoming-card{padding:17px}.legend{display:none}.bar-chart{gap:8px;padding-left:0;padding-right:0}.category-list{grid-template-columns:1fr}.category-body{height:auto;padding-top:16px}.filters{align-items:stretch;flex-direction:column}.segmented{align-self:flex-start}.people-grid{grid-template-columns:1fr}.data-tools{align-items:stretch;flex-direction:column}.data-tool-actions{flex-wrap:wrap}.investment-result{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr;gap:0}.modal{padding:20px}}
