﻿:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#f7f4f2;background:#0b0b0e;--canvas:#0b0b0e;--surface:#15151a;--line:#2b2b34;--muted:#9b9aa3;--coral:#e54b61;--coral-soft:#ff9ba8;--green:#6eda8a;--purple:#a88af5;--ink:#f7f4f2}*{box-sizing:border-box}body{margin:0;background:radial-gradient(900px 400px at 50% -180px,#252233 0%,var(--canvas) 64%);min-height:100vh}main{max-width:1120px;margin:auto;padding:clamp(24px,5vw,64px)}#login{max-width:460px;margin:12vh 0}.eyebrow{font-size:.7rem;letter-spacing:.16em;color:var(--purple);font-weight:800}h1{font-size:clamp(2.5rem,5vw,4.4rem);letter-spacing:-.06em;margin:.25rem 0 1rem}h2{font-size:1rem;letter-spacing:-.02em}p{color:var(--muted);line-height:1.55}form{display:flex;gap:8px;margin-top:28px}input,select,button{border-radius:10px;padding:12px 15px;border:1px solid var(--line);font:inherit}input,select{background:#111116;color:var(--ink)}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#bdbac8 50%),linear-gradient(135deg,#bdbac8 50%,transparent 50%);background-position:calc(100% - 18px) 53%,calc(100% - 13px) 53%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px}input{flex:1}button{background:var(--coral);color:#fff;border:0;font-weight:800;cursor:pointer;transition:filter .16s,transform .16s}button:hover{filter:brightness(1.08);transform:translateY(-1px)}.secondary{background:#292934;color:#f4f2f8}button:disabled{cursor:not-allowed;opacity:.6;transform:none}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.header-actions,.button-row{display:flex;gap:10px;align-items:center}.header-actions{flex-wrap:wrap;justify-content:flex-end}.month-bar{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;margin:0 -20px 12px;background:rgba(11,11,14,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.month-bar-label{font-size:1.1rem;font-weight:800;letter-spacing:-.03em;cursor:pointer;user-select:none;text-transform:capitalize;min-width:180px;text-align:center}.month-bar-btn{width:36px;height:36px;padding:0;border-radius:10px;font-size:1.4rem;display:grid;place-items:center;background:#1e1e28;border:1px solid var(--line);color:var(--ink)}.month-bar-btn:hover{background:#2a2a38}.month-bar-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.month-bar-today{padding:6px 14px;font-size:.75rem;font-weight:800;border-radius:8px}.app-nav{display:flex;gap:8px;padding:5px;background:#111116;border:1px solid var(--line);border-radius:13px;margin-bottom:16px}.nav-item{background:transparent;color:var(--muted);padding:10px 16px}.nav-item.active{background:#302b3e;color:#fff}.nav-item span{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:var(--coral);font-size:.7rem}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cards article,.panel{background:linear-gradient(145deg,#17171d,#121216);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 16px 40px #00000018}.cards article{position:relative;overflow:hidden}.cards article:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--purple)}.cards article:nth-child(2):before{background:var(--coral)}.cards article:nth-child(3):before{background:var(--green)}.cards span{display:block;color:var(--muted);font-size:.78rem;font-weight:700}.cards strong{display:block;font-size:1.65rem;letter-spacing:-.05em;margin-top:10px}.panel{margin-top:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading h2{margin-bottom:4px}.panel-heading p{margin:0}.tx,.account,.category-action,.project-row{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid var(--line)}.tx:first-child,.account:first-child,.category-action:first-child,.project-row:first-child{border-top:0}.tx span,.account span,.category-action span{min-width:0;text-align:left}.tx small,.account small,.category-action small,.project-row small{display:block;color:var(--muted);margin-top:4px;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx b,.account b{white-space:nowrap;color:var(--green);font-variant-numeric:tabular-nums}.tx b.neg,#drawer-amount.neg{color:var(--coral-soft)}.category-action{width:100%;text-align:left;background:transparent;border-radius:0;color:var(--ink);align-items:center}.category-action:hover{background:#1b1a21;filter:none;transform:none;padding-left:10px;padding-right:10px}.category-action b{white-space:nowrap;color:var(--coral-soft);font-variant-numeric:tabular-nums}.action-tx{width:100%;background:transparent;border-radius:0;color:var(--ink);align-items:center}.action-tx:hover{background:#1b1a21;filter:none;transform:none;padding-left:10px;padding-right:10px}.action-tx em{font-style:normal;color:var(--purple);font-size:.78rem}.trend-chart{height:220px}.chart-legend{display:flex;gap:16px;font-size:.8rem;color:var(--muted)}.chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.income-dot:before{background:var(--green)}.expense-dot:before{background:var(--coral)}.bars{height:170px;display:flex;align-items:end;gap:13px;padding:12px 0 0;border-bottom:1px solid var(--line)}.bar-group{height:100%;flex:1;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:4px;position:relative;padding-bottom:25px}.bar-group small{position:absolute;bottom:2px;left:0;width:100%;text-align:center;color:var(--muted);font-size:.7rem}.bar{border-radius:5px 5px 0 0;min-height:3px}.income-bar{background:var(--green)}.expense-bar{background:var(--coral)}.drawer{position:fixed;inset:0;z-index:20;pointer-events:none}.drawer.open{pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;background:#000a;opacity:0;transition:opacity .2s}.drawer.open .drawer-backdrop{opacity:1}.drawer-card{position:absolute;right:0;top:0;width:min(440px,100%);height:100%;padding:30px;background:#15151b;border-left:1px solid var(--line);transform:translateX(100%);transition:transform .24s;overflow:auto}.drawer.open .drawer-card{transform:translateX(0)}.drawer-close{position:sticky;top:0;float:right;padding:8px 12px;z-index:1}.drawer-card label{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700;margin-top:18px}.drawer-card input,.drawer-card select{width:100%}.drawer-card>#drawer-amount{display:block;font-size:1.4rem;color:var(--green);margin-top:12px}.drawer-card>#drawer-save{width:100%;margin-top:24px}#pluggy-link{background:var(--purple)}.alert{background:#2a1a1e;border:1px solid var(--coral);color:var(--coral-soft);border-radius:12px;padding:12px 16px;margin-top:14px;font-size:.85rem;font-weight:700}#project-form{display:grid;gap:14px;margin-top:16px}#project-form label{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700}#project-form input,#project-form select{width:100%}button.project-row{width:100%;text-align:left;background:transparent;border-radius:0;color:var(--ink);cursor:pointer;font:inherit}button.project-row:hover{background:#1b1a21;filter:none;transform:none;padding-left:10px;padding-right:10px}.stale{color:var(--coral-soft)}.nav-item span.stale{background:var(--coral-soft);color:#2a1a1e}.neutral-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:8px;background:#232330;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}@media(max-width:760px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){main{padding:24px 16px;padding-bottom:90px}.cards{grid-template-columns:1fr}.cards article{padding:17px}header,.header-actions,.panel-heading{align-items:flex-start;flex-direction:column}.header-actions{width:100%}.button-row{width:100%}.button-row button{flex:1}.tx,.account,.category-action{gap:10px}.tx small,.category-action small{max-width:190px}.app-nav{position:fixed;z-index:10;bottom:10px;left:12px;right:12px;justify-content:space-around;box-shadow:0 12px 35px #000}.nav-item{font-size:.75rem;padding:10px 8px}.bars{gap:7px}.month-bar{margin:0 -16px 12px;gap:8px}.month-bar-label{font-size:.95rem;min-width:140px}}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:14px 0 4px}.filters label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}.filters select{padding:9px 34px 9px 12px}.filters #clear-filters{padding:9px 14px;font-size:.8rem;background:#292934;color:#f4f2f8}.filter-count{margin:0 0 6px;color:var(--muted);font-size:.76rem;font-weight:700}@media(max-width:640px){.filters{gap:8px}.filters label{flex:1;min-width:130px}.filters select{width:100%}}.account-right{display:flex;align-items:center;gap:12px}.account-edit{padding:6px 12px;font-size:.75rem}.account.editing{display:block}.account-edit-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end;width:100%;padding:2px 0}.account-edit-form label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:700;flex:1;min-width:150px}.account-edit-form input,.account-edit-form select{width:100%}.account-edit-actions{display:flex;gap:8px;align-items:end}.account-edit-form button{padding:9px 14px;font-size:.8rem}.rule-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.rule-form input{flex:1;min-width:200px}.rule-form select{min-width:180px}.rule-form button{padding:11px 16px}.rule{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.rule:first-child{border-top:0}.rule span{min-width:0}.rule.inactive{opacity:.55}.rule b{color:var(--ink);font-weight:700}.rule em{color:var(--muted);font-style:normal}.rule-actions{display:flex;gap:8px;flex-shrink:0}.rule-actions button{padding:6px 12px;font-size:.75rem}.rule-edit-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;width:100%}.rule-edit-form .rule-edit-pattern{flex:1;min-width:160px}.rule-edit-form select{min-width:160px}.rule-active-toggle{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:700}.rule-active-toggle input{width:auto;flex:none}.rule-edit-form button{padding:9px 14px;font-size:.8rem}.rule-project{color:var(--purple);font-style:normal;font-weight:700}.rule-edit-form select{min-width:150px}@media(max-width:640px){.rule-form input,.rule-form select{width:100%;flex:1 1 100%}.rule{flex-wrap:wrap}}.nav-item span:empty{display:none}.cat-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.cat-row:first-child{border-top:0}.cat-row span{min-width:0}.cat-row small{display:block;color:var(--muted);margin-top:4px;font-size:.78rem}.cat-edit-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;width:100%}.cat-edit-form .cat-edit-name{flex:1;min-width:160px}.cat-edit-form select{min-width:160px}.cat-edit-form button{padding:9px 14px;font-size:.8rem}@media(max-width:640px){.cat-row{flex-wrap:wrap}}.invest-total{background:linear-gradient(90deg,#1a1d2a 0%,transparent 100%);border-radius:10px;padding:14px;margin-bottom:4px}.invest-total b{color:var(--purple);font-size:1.15rem}.account b.neg{color:var(--coral-soft)}.account b.invest{color:var(--purple)}.patrimony-bar{margin-bottom:16px}.patrimony-toggle{display:flex;justify-content:flex-end;margin-bottom:8px}.patrimony-toggle button{padding:6px 14px;font-size:.75rem}.patrimony-items{display:flex;flex-wrap:wrap;gap:12px}.patrimony-item{flex:1;min-width:140px;background:linear-gradient(145deg,#17171d,#121216);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.patrimony-item span{display:block;color:var(--muted);font-size:.75rem;font-weight:700}.patrimony-item b{display:block;font-size:1.2rem;margin-top:6px;color:var(--green);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.patrimony-item b.neg{color:var(--coral-soft)}.patrimony-item b.invest{color:var(--purple)}.patrimony-net{border-color:var(--purple)}.patrimony-net b{color:var(--ink)}.project-chart{height:220px;margin-top:16px}.project-chart .bars{height:170px}.project-chart .bar-group{grid-template-columns:repeat(auto-fit,minmax(8px,1fr))}.forecast-income-bar{background:var(--green);opacity:.35;border:1px dashed var(--green)}.forecast-expense-bar{background:var(--coral);opacity:.35;border:1px dashed var(--coral)}.forecast-dot:before{background:var(--muted);border:1px dashed var(--muted)}.forecast-cell{color:var(--muted);font-style:italic}.monthly-row:hover{background:#1b1a21;border-radius:6px}.forecast-label{display:grid;gap:4px;color:var(--muted);font-size:.78rem;font-weight:700;min-width:120px}.project-monthly{margin-top:20px}.project-monthly h3{font-size:.9rem;color:var(--muted);margin:0 0 10px}.table-scroll{overflow-x:auto}.monthly-table{width:100%;border-collapse:collapse;font-size:.85rem;font-variant-numeric:tabular-nums}.monthly-table th{text-align:left;color:var(--muted);font-size:.75rem;font-weight:700;padding:8px 12px 8px 0;border-bottom:1px solid var(--line)}.monthly-table td{padding:8px 12px 8px 0;border-bottom:1px solid var(--line);white-space:nowrap}.monthly-table td:nth-child(2){color:var(--green)}.monthly-table td.neg{color:var(--coral-soft)}.monthly-table td:nth-child(3){color:var(--coral-soft)}.monthly-total td{font-weight:800;border-top:2px solid var(--line);border-bottom:0}#project-transactions-panel{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}#project-transactions-panel h3{font-size:.9rem;margin:0}#project-forecasts{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}#project-forecasts h3{font-size:.9rem;color:var(--muted);margin:0 0 12px}#project-forecasts .rule-form{margin:0 0 12px}#project-forecasts input[type="month"]{min-width:130px}#project-forecasts .forecast-delete{padding:4px 10px;font-size:.85rem;min-width:28px}.collapse-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;color:var(--ink);border:0;border-radius:0;padding:0;cursor:pointer;text-align:left}.collapse-toggle:hover{filter:none;transform:none}.collapse-toggle h2{margin:0;pointer-events:none}.collapse-icon{font-size:1.3rem;color:var(--muted);transition:transform .2s;flex-shrink:0}.collapsible:not(.collapsed) .collapse-icon{transform:rotate(90deg)}.collapse-body{overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.collapsed .collapse-body{max-height:0;opacity:0;pointer-events:none}.collapsible:not(.collapsed) .collapse-body{max-height:2000px;opacity:1}.filters input[type="search"]{padding:9px 12px;min-width:180px}.flow-tx-row{display:flex;align-items:center;gap:0;border-top:1px solid var(--line)}.flow-tx-row:first-child{border-top:0}.bulk-check{display:none;align-items:center;padding:8px;flex-shrink:0;cursor:pointer}.bulk-mode .bulk-check{display:flex}.bulk-checkbox{width:18px;height:18px;accent-color:var(--purple);cursor:pointer}.flow-tx-btn{flex:1;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;cursor:pointer;text-align:left;min-width:0}.flow-tx-btn:hover{background:#1b1a21;filter:none;transform:none}.flow-tx-btn span{min-width:0}.flow-tx-btn small{display:block;color:var(--muted);margin-top:4px;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-tx-btn b{white-space:nowrap;color:var(--green);font-variant-numeric:tabular-nums}.flow-tx-btn b.neg{color:var(--coral-soft)}.flow-tx-row.bulk-active{background:#b79cff12;border-left:3px solid var(--purple)}.bulk-bar{position:sticky;bottom:0;z-index:11;display:flex;align-items:center;gap:10px;padding:12px 16px;background:rgba(21,21,27,.95);backdrop-filter:blur(14px);border-top:2px solid var(--purple);border-radius:10px 10px 0 0;flex-wrap:wrap}.bulk-bar span{font-size:.85rem;font-weight:800;color:var(--purple);white-space:nowrap}.bulk-bar select{min-width:140px;padding:8px 32px 8px 10px;font-size:.82rem}.bulk-bar button{padding:8px 16px;font-size:.82rem}.consolidar-feedback{margin-top:10px;padding:10px 14px;border-radius:10px;background:#1a2a1e;border:1px solid var(--green);color:var(--green);font-size:.85rem;font-weight:700;animation:feedbackIn .3s ease}@keyframes feedbackIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.patrimony-items{gap:8px}.patrimony-item{min-width:45%}.filters input[type="search"]{width:100%;min-width:0}.bulk-bar{bottom:68px;gap:8px;padding:10px 12px}.bulk-bar select{min-width:0;flex:1}.bulk-bar button{flex:none}}

