@font-face{font-family:Geist;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/geist-latin-BgDaEnEv.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/newsreader-latin-s-izfB6B.woff2) format("woff2")}:root,[data-theme=dark]{--bg: #0a1220;--bg-elev: #111a2c;--bg-elev-2: #18233a;--bg-hover: #1d2945;--bg-input: #0d1626;--border: rgba(255, 255, 255, .06);--border-strong: rgba(255, 255, 255, .12);--divider: rgba(255, 255, 255, .04);--text: #e6ebf3;--text-2: #98a2b6;--text-3: #5e6679;--text-inverse: #0a1220;--accent: #5283c8;--accent-soft: rgba(82, 131, 200, .14);--accent-strong: #6a96d3;--positive: #2a5a48;--positive-2: #346a55;--positive-line: #6ab397;--positive-text: #d6ecdf;--negative: #6b2a2a;--negative-2: #7d3636;--negative-line: #d99090;--negative-text: #f0d4d4;--c1: #3d6cb0;--c2: #5c89c4;--c3: #7aa5d4;--c4: #9abfe2;--c5: #b8d3ec;--c6: #3a4a66;--shadow-card: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 1px 2px rgba(0, 0, 0, .4);color-scheme:dark}[data-theme=light]{--bg: #eef1f7;--bg-elev: #ffffff;--bg-elev-2: #f6f8fc;--bg-hover: #eaeef6;--bg-input: #f6f8fc;--border: rgba(15, 23, 42, .07);--border-strong: rgba(15, 23, 42, .14);--divider: rgba(15, 23, 42, .05);--text: #0f1a2e;--text-2: #4a5468;--text-3: #8a93a6;--text-inverse: #ffffff;--accent: #2a4f8c;--accent-soft: rgba(42, 79, 140, .1);--accent-strong: #1f3e72;--positive: #3b6e58;--positive-2: #4a8169;--positive-line: #c4e0d2;--positive-text: #f3faf6;--negative: #8a3838;--negative-2: #9c4747;--negative-line: #efc9c9;--negative-text: #fdf3f3;--c1: #2a4f8c;--c2: #4a73b5;--c3: #6b94cf;--c4: #95b4dd;--c5: #c0d3ea;--c6: #b6c0d2;--shadow-card: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 1px 3px rgba(15, 23, 42, .06);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:Geist,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.serif{font-family:Newsreader,Georgia,serif;font-weight:400;letter-spacing:0}.num{font-variant-numeric:tabular-nums;letter-spacing:0}.icon{flex-shrink:0}.row{display:inline-flex;align-items:center;gap:8px}.muted{color:var(--text-3)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::selection{color:var(--text);background:var(--accent-soft)}.app{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;gap:20px;height:100vh;padding:22px 14px 18px;overflow-y:auto;background:var(--bg-elev);border-right:1px solid var(--border)}.mobile-sidebar-head{display:none}.brand{display:flex;gap:11px;align-items:center;padding:4px 8px 14px;color:inherit;text-decoration:none;border-bottom:1px solid var(--divider)}.brand-mark{display:grid;width:34px;height:34px;place-items:center;font-family:Newsreader,Georgia,serif;font-size:19px;font-weight:500;color:#fff;letter-spacing:0;background:linear-gradient(150deg,var(--accent) 0%,var(--accent-strong) 100%);border-radius:6px}.brand-name{display:flex;flex-direction:column;gap:1px}.brand-name .name{font-family:Newsreader,Georgia,serif;font-size:16px;line-height:1;color:var(--text);letter-spacing:0}.brand-name .sub{font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.12em}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{padding:4px 10px 6px;font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.12em}.nav-item{display:flex;gap:10px;align-items:center;min-height:36px;padding:8px 10px;overflow-wrap:anywhere;color:var(--text-2);text-decoration:none;border:1px solid transparent;border-radius:6px;transition:background .12s,color .12s,border-color .12s}.nav-item:hover{color:var(--text);background:var(--bg-hover)}.nav-item.active{color:var(--text);background:var(--accent-soft);border-color:var(--border)}.nav-item.active .icon{color:var(--accent-strong)}.nav-item .badge{padding:1px 6px;margin-left:auto;font-size:10.5px;color:var(--text-2);background:var(--bg-elev-2);border-radius:999px}.sidebar-footer{display:flex;flex-direction:column;gap:10px;padding-top:14px;margin-top:auto;border-top:1px solid var(--divider)}.users{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px}.avatars{display:flex}.avatar{display:grid;width:26px;height:26px;place-items:center;font-size:11px;font-weight:500;color:#fff;border:2px solid var(--bg-elev);border-radius:50%}.avatar+.avatar{margin-left:-7px}.avatar.f{background:linear-gradient(150deg,#3d6cb0,#2a4f8c)}.avatar.e{background:linear-gradient(150deg,#6a4f8c,#4f3a70)}.users .meta{display:flex;min-width:0;flex-direction:column}.users .meta .name{overflow:hidden;font-size:12px;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.users .meta .sub{font-size:10.5px;color:var(--text-3)}.main{display:flex;min-width:0;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;gap:14px;align-items:center;min-height:72px;padding:18px 28px;background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.menu-btn{display:none;width:34px;height:34px;place-items:center;color:var(--text-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:7px}.crumbs{display:flex;gap:8px;align-items:baseline;min-width:0}.crumbs .h{margin:0;font-family:Newsreader,Georgia,serif;font-size:22px;font-weight:400;line-height:1;color:var(--text);letter-spacing:0}.crumbs .sub{overflow:hidden;font-size:12px;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap}.search{display:flex;gap:8px;align-items:center;width:240px;height:34px;padding:0 10px;margin-left:8px;margin-right:auto;overflow:hidden;font-size:12.5px;color:var(--text-3);text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:7px}.search span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search kbd{padding:1px 5px;margin-left:auto;font-family:inherit;font-size:10.5px;color:var(--text-2);background:var(--bg-elev-2);border-radius:4px}.topbar-month-slot{display:flex;gap:8px;align-items:center;width:240px;margin-left:8px}.topbar-month-slot .month-nav{width:100%;margin-left:0}.topbar-flex-spacer{flex:1;min-width:8px}.month-nav{display:flex;gap:4px;align-items:center;padding:4px;margin-left:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px}.month-nav button{display:grid;width:28px;height:28px;place-items:center;color:var(--text-2);background:transparent;border:0;border-radius:5px}.month-nav button:hover,.icon-btn:hover,.menu-btn:hover{color:var(--text);background:var(--bg-hover)}.month-pill{display:flex;gap:8px;align-items:center;height:28px;padding:0 12px;font-size:13px;color:var(--text);white-space:nowrap}.month-pill .dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.icon-btn{display:grid;width:34px;height:34px;place-items:center;color:var(--text-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:7px}.topbar-logout{min-width:50px;justify-content:center}.content{display:flex;flex-direction:column;gap:20px;padding:24px 28px 40px}.state-banner{padding:10px 12px;font-size:12.5px;color:var(--text-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:7px}.state-banner.error,.form-error{color:#d99090;border-color:#d990902e}.duplicate-alert{display:grid;gap:5px;padding:11px 12px;font-size:12.5px;line-height:1.45;color:#f0c982;background:#f0c98214;border:1px solid rgba(240,201,130,.2);border-radius:7px}.duplicate-alert strong{color:#f4d9a0}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card,.data-surface,.upload-panel,.module-panel{position:relative;overflow:hidden;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-card)}.card{padding:16px 18px}.card-title{display:flex;gap:6px;align-items:center;min-height:17px;font-size:11.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.12em}.card-title .tag{padding:1px 6px;font-size:10px;color:var(--text-2);text-transform:none;letter-spacing:0;background:var(--bg-elev-2);border-radius:999px}.saldo-card{position:relative;display:flex;min-height:172px;flex-direction:column;gap:10px;padding:16px 18px;overflow:hidden;color:#fff;border:1px solid transparent;border-radius:8px}.saldo-card .ct{color:#ffffffc7}.saldo-card.pos{background:linear-gradient(155deg,var(--positive) 0%,var(--positive-2) 100%)}.saldo-card.neg{background:linear-gradient(155deg,var(--negative) 0%,var(--negative-2) 100%)}.saldo-card .value,.exp-card .value{display:flex;gap:6px;align-items:baseline;min-width:0;font-weight:500;line-height:1.05}.saldo-card .value{font-size:26px}.saldo-card .value .cur{font-size:13px;font-weight:400;color:#ffffffb8}.saldo-card .footnote,.exp-card .footnote{display:flex;gap:12px;align-items:end;justify-content:space-between;overflow-wrap:anywhere;font-size:11.5px;font-variant-numeric:tabular-nums}.saldo-card .footnote{color:#ffffffbf}.saldo-card svg.spark{width:100%;height:38px;margin-top:4px;opacity:.85}.exp-card{min-height:172px}.exp-card .value{margin-top:6px;font-size:23px}.exp-card .value .cur{font-size:12px;font-weight:400;color:var(--text-3)}.exp-card .footnote{margin-top:10px;color:var(--text-3)}.exp-card .delta{display:inline-flex;gap:4px;align-items:center;padding:1px 6px;font-size:11px;color:var(--text-2);background:var(--bg-elev-2);border-radius:4px}.exp-card .delta.up{color:#d99090}.exp-card .delta.down,.income{color:#97caa9}.expense{color:#d99090}.exp-card svg.spark{width:100%;height:28px;margin-top:6px}.progress{height:4px;margin-top:8px;overflow:hidden;background:#ffffff14;border-radius:2px}[data-theme=light] .progress{background:#0f172a14}.progress>span{display:block;height:100%;background:var(--accent);border-radius:2px}.saldo-card .progress{background:#ffffff2e}.saldo-card .progress>span{background:#ffffffd9}.mid-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px}.dashboard-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.section-head{display:flex;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:14px}.section-head h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:16px;font-weight:400;letter-spacing:0}.section-head .meta{font-size:11px;color:var(--text-3);text-transform:uppercase;white-space:nowrap;letter-spacing:.04em}.donut-row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;align-items:center}.donut-svg{width:200px;height:200px}.balance-composition-card{min-width:0}.balance-donut-row{display:grid;grid-template-columns:168px minmax(0,1fr);gap:18px;align-items:center}.balance-donut-svg{width:168px;height:168px}.balance-donut-legend .legend-row{grid-template-columns:12px minmax(0,1fr) 44px 86px}.chart-label{text-transform:uppercase;letter-spacing:.16em}.chart-value{font-family:Newsreader,Georgia,serif;font-variant-numeric:tabular-nums}.donut-legend{display:flex;flex-direction:column;gap:8px}.legend-row{display:grid;grid-template-columns:12px minmax(0,1fr) 44px 90px;gap:10px;align-items:center;padding:4px 0;font-size:12.5px;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--divider)}.legend-row:last-child{border-bottom:0}.legend-row .swatch{width:10px;height:10px;border-radius:2px}.legend-row .cat{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.legend-row .pct,.legend-row .val{text-align:right}.legend-row .pct{color:var(--text-3)}.legend-row .val{color:var(--text-2)}.line-card{display:flex;flex-direction:column}.line-svg{display:block;width:100%;height:220px}.line-legend{display:flex;gap:14px;margin-top:4px;font-size:11px;color:var(--text-3)}.line-legend .item{display:inline-flex;gap:6px;align-items:center}.line-legend .swatch{width:10px;height:2px;border-radius:2px}.line-legend .swatch.main{background:var(--accent)}.line-legend .swatch.average{background:var(--text-3)}.top5{display:flex;flex-direction:column;gap:12px}.empty-panel{display:grid;min-height:72px;place-items:center;padding:14px;font-size:12px;color:var(--text-3);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:7px}.top5-item{display:flex;flex-direction:column;gap:7px}.top5-head{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center}.top5-head .icon{color:var(--accent)}.top5-head .name,.parcela .name,.aviso .title{overflow:hidden;font-size:12.5px;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.top5-head .val{font-size:12.5px;color:var(--text-2);font-variant-numeric:tabular-nums}.top5 .bar-row{height:4px;overflow:hidden;background:var(--bg-elev-2);border-radius:2px}.top5 .bar-row>span{display:block;height:100%;border-radius:2px}.avisos{display:flex;flex-direction:column;gap:8px}.aviso{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.aviso .ic,.upload-icon,.module-icon{display:grid;place-items:center;color:var(--accent-strong);background:var(--accent-soft);border-radius:6px}.aviso .ic{width:28px;height:28px}.aviso .sub{margin-top:1px;overflow:hidden;font-size:11px;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap}.aviso .due{font-size:11.5px;color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums}.aviso .due .amount{display:block;font-size:13px;color:var(--text)}.aviso.warn{border-color:#d990902e}.aviso.warn .ic{color:#d99090;background:#d9909026}.parcelas{display:flex;flex-direction:column;gap:12px}.parcela{display:flex;flex-direction:column;gap:6px;padding:11px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.parcela .head,.parcela .foot,.parcela-total{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.parcela .num{font-size:11px;color:var(--text-3)}.parcela .bar{display:flex;height:4px;overflow:hidden;background:#ffffff0f;border-radius:2px}[data-theme=light] .parcela .bar{background:#0f172a14}.parcela .foot{font-size:11px;color:var(--text-3)}.parcela .foot .month{color:var(--text-2);font-variant-numeric:tabular-nums}.installment-carousel-nav{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:10px;align-items:center;padding:1px 0 2px}.installment-nav-btn{width:30px;height:30px;color:var(--text-3);background:transparent;border-color:transparent}.installment-nav-btn:hover{color:var(--text-2);background:var(--bg-input);border-color:var(--border)}.installment-page-dots{display:flex;gap:7px;align-items:center;justify-content:center;min-width:0}.installment-page-dot{width:6px;height:6px;padding:0;background:var(--text-3);border:0;border-radius:50%;opacity:.45}.installment-page-dot.active{width:18px;background:var(--accent);border-radius:999px;opacity:1}.parcela-total{padding:11px 4px 0;margin-top:6px;font-size:12px;color:var(--text-3);border-top:1px solid var(--divider)}.parcela-total.compact{padding-top:8px;margin-top:0;border-top:0}.parcela-total strong{font-size:13px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}.data-surface{padding:16px 18px}.table-scroll{width:100%;overflow-x:auto}.data-table{width:100%;min-width:820px;border-collapse:collapse}.data-table th,.data-table td{padding:11px 10px;font-size:12.5px;text-align:left;border-bottom:1px solid var(--divider)}.data-table th{font-size:10.5px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.table-sort-btn{display:inline-flex;gap:4px;align-items:center;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:transparent;border:0}.table-sort-btn:hover,.table-sort-btn:focus-visible{color:var(--text);outline:none}.table-sort-btn .icon{color:var(--text-3)}.data-table td{color:var(--text-2)}.empty-cell{height:72px;color:var(--text-3);text-align:center}.data-table .strong{color:var(--text)}.installment-totals-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:10px;overflow:hidden;background:var(--border);border:1px solid var(--border);border-radius:7px}.installment-totals-row>div{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--bg-elev-2)}.installment-totals-row span{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.installment-totals-row strong{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.num-col{text-align:right;white-space:nowrap}.status-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;color:var(--text-2);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px}.status-badge.confirmed,.status-badge.new{color:#97caa9}.status-badge.pending,.status-badge.review{color:#e0c278}.status-badge.duplicate{color:#d99090}.status-badge.possible-duplicate,.status-badge.false-duplicate{color:#e0c278}.status-cell{display:inline-flex;gap:6px;align-items:center}.review-reason{max-width:240px;overflow:hidden;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap}.inline-icon-btn{display:inline-grid;width:24px;height:24px;place-items:center;color:var(--text-2);cursor:pointer;background:var(--bg-input);border:1px solid var(--border);border-radius:6px}.inline-icon-btn:hover,.inline-icon-btn:focus-visible{color:var(--text);border-color:var(--accent);outline:none}.duplicate-decision-group{width:176px}.import-confirmation-stack{display:inline-flex;min-width:176px;flex-direction:column;gap:7px;align-items:flex-start}.duplicate-decision-select{min-height:32px;padding:6px 9px;font-size:12px}.invoice-adjustment-check{display:inline-flex;gap:7px;align-items:center;min-height:28px;font-size:12px;color:var(--text-2);white-space:nowrap}.invoice-adjustment-check input{width:15px;height:15px;accent-color:var(--accent)}.muted-cell{color:var(--text-3)}.duplicate-detail-row td{padding-top:0;background:color-mix(in srgb,var(--bg-elev-2) 58%,transparent)}.duplicate-detail{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px}.duplicate-detail-head,.duplicate-candidate{display:flex;gap:10px;align-items:center;justify-content:space-between}.duplicate-detail-head strong{font-size:13px;font-weight:600}.duplicate-detail-head span,.duplicate-candidate span{color:var(--text-3)}.duplicate-candidates{display:flex;flex-direction:column;gap:6px}.duplicate-empty{margin:0;color:var(--text-3)}.duplicate-candidate{min-height:34px;padding:7px 9px;background:var(--bg-input);border:1px solid var(--divider);border-radius:7px}.duplicate-candidate strong{min-width:220px;color:var(--text);overflow-wrap:anywhere}.import-review{display:flex;flex-direction:column;gap:14px}.upload-panel{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px}.upload-icon,.module-icon{width:44px;height:44px}.upload-panel h2,.module-panel h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:17px;font-weight:400}.upload-panel p,.module-panel p{margin:2px 0 0;color:var(--text-3)}.upload-actions,.review-actions,.module-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.review-actions{padding-top:14px;border-top:1px solid var(--divider)}.primary-btn,.quiet-btn{display:inline-flex;gap:8px;align-items:center;min-height:34px;padding:0 12px;color:var(--text);white-space:nowrap;border-radius:7px}.primary-btn{background:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 80%,#fff)}.quiet-btn{background:var(--bg-elev-2);border:1px solid var(--border)}.primary-btn:hover{background:var(--accent-strong)}.quiet-btn:hover{background:var(--bg-hover)}.quiet-btn:disabled:hover{background:var(--bg-elev-2)}.primary-btn.danger{background:var(--negative);border-color:color-mix(in srgb,var(--negative) 82%,#fff)}.primary-btn.danger:hover{background:var(--negative-2)}.actions-col{width:1%;text-align:right;white-space:nowrap}.row-actions{display:inline-flex;gap:6px;justify-content:flex-end}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .full{grid-column:1 / -1}.form-field{display:flex;min-width:0;flex-direction:column;gap:7px;font-size:12px;color:var(--text-2)}.form-label{display:inline-flex;gap:3px;align-items:baseline}.form-control{width:100%;min-height:38px;padding:0 11px;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:7px}textarea.form-control{min-height:86px;padding-top:10px;resize:vertical}.form-control:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.multi-select{position:relative;min-width:0}.multi-select-trigger{display:flex;gap:8px;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.multi-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-menu{position:fixed;z-index:1200;display:flex;box-sizing:border-box;flex-direction:column;gap:8px;min-height:220px;padding:10px;overflow:hidden;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 18px 38px #00000052,var(--shadow-card)}.multi-select-search{min-height:34px}.multi-select-actions{display:flex;gap:8px}.multi-select-actions button{min-height:28px;padding:0 9px;font-size:12px;color:var(--text-2);cursor:pointer;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px}.multi-select-actions button:hover,.multi-select-actions button:focus-visible{color:var(--text);border-color:var(--accent);outline:none}.multi-select-options{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto}.multi-select-option{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;align-items:center;min-height:30px;padding:5px 6px;color:var(--text-2);cursor:pointer;border-radius:6px}.multi-select-option:hover{color:var(--text);background:var(--bg-hover)}.multi-select-option input{width:14px;height:14px;margin:0;accent-color:var(--accent)}.multi-select-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-empty{margin:8px 4px;color:var(--text-3)}.field-error{color:#d99090}.field-hint{color:var(--text-3)}.invoice-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoice-preview>div{display:flex;min-height:54px;flex-direction:column;justify-content:center;padding:10px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:7px}.invoice-preview span{font-size:11px;color:var(--text-3)}.invoice-preview strong{margin-top:4px;color:var(--text)}.color-control{min-width:52px;padding:4px}.color-chip{display:inline-flex;gap:7px;align-items:center;color:var(--text-2)}.color-swatch{width:14px;height:14px;border:1px solid var(--border-strong);border-radius:4px}.form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:14px}.filter-strip{display:grid;grid-template-columns:minmax(160px,220px) minmax(220px,320px) auto;gap:12px;align-items:end;padding:12px;margin-bottom:14px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.transactions-filter-strip{grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr) minmax(180px,1.2fr) minmax(180px,1.2fr)}.transactions-filter-strip .transaction-search-control{grid-column:span 2}.transaction-search-control{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:8px;align-items:end;min-width:0}.transaction-search-export,.transaction-search-clear{width:38px;height:38px;background:var(--bg-input)}.transaction-search-export:disabled:hover,.transaction-search-clear:disabled:hover{color:var(--text-2);background:var(--bg-input)}.application-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}.filter-badge{display:flex;align-items:center;min-height:38px}.transaction-total-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.transaction-total-item{display:flex;gap:10px;align-items:baseline;justify-content:space-between;min-height:54px;padding:10px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.transaction-total-item.balance{background:color-mix(in srgb,var(--accent-soft) 34%,var(--bg-elev-2))}.transaction-total-item span{min-width:0;overflow:hidden;font-size:11px;color:var(--text-3);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;letter-spacing:.08em}.transaction-total-item strong{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-detail{margin-top:14px}.detail-panel{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.detail-head{display:flex;gap:10px;align-items:baseline;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--divider)}.detail-head>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.detail-head strong,.purchase-row strong{color:var(--text)}.detail-head span,.purchase-row span{color:var(--text-3)}.purchase-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--divider)}.purchase-row:last-child{border-bottom:0}.purchase-row>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.purchase-meta{display:inline-flex;gap:8px;align-items:center;justify-content:flex-end}.timeline{display:flex;grid-column:1 / -1;flex-wrap:wrap;gap:6px}.timeline-chip{display:inline-flex;min-height:24px;align-items:center;padding:2px 8px;font-size:11px;color:var(--text-2);background:var(--bg-input);border:1px solid var(--border);border-radius:999px}.report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.report-summary>div{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.report-summary span{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.report-summary strong{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}.report-bars{display:flex;flex-direction:column;gap:12px}.report-bar{display:flex;flex-direction:column;gap:7px}.report-bar .bar-row{height:5px;overflow:hidden;background:var(--bg-elev-2);border-radius:3px}.report-bar .bar-row>span{display:block;height:100%;border-radius:3px}.settings-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px}.settings-wide{grid-column:1 / -1}.settings-actions{display:flex;flex-wrap:wrap;gap:8px}.quiet-btn.active{color:var(--text);background:var(--accent-soft);border-color:var(--accent)}.invite-link{padding:10px 11px;overflow-wrap:anywhere;color:var(--text-2);background:var(--bg-input);border:1px solid var(--border);border-radius:7px}.telegram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.telegram-card{display:flex;min-width:0;flex-direction:column;gap:12px;padding:13px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.telegram-card.locked{background:color-mix(in srgb,var(--bg-elev-2) 76%,var(--bg-input))}.telegram-card-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.telegram-card-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.telegram-card-head strong{color:var(--text)}.telegram-card-head span{color:var(--text-3);font-size:12px}.telegram-command{display:grid;gap:9px}.telegram-command-meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:11px;color:var(--text-3)}.telegram-command-meta span:first-child{color:var(--text-2)}.telegram-command.expired .telegram-command-meta span:first-child{color:#d99090}.telegram-command code{display:block;min-width:0;padding:10px 11px;overflow-wrap:anywhere;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:7px}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008f;border:0}.modal-panel,.confirm-panel{position:relative;z-index:1;width:min(100%,640px);max-height:min(86vh,820px);overflow:auto;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 24px 80px #00000061}.modal-panel.sm{width:min(100%,420px)}.modal-panel.lg{width:min(100%,920px)}.modal-head{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--divider)}.modal-head h2,.confirm-panel h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:18px;font-weight:400;letter-spacing:0}.modal-body{padding:16px}.confirm-panel{width:min(100%,420px);padding:18px}.confirm-panel p{margin:9px 0 4px;color:var(--text-2)}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;width:min(360px,calc(100vw - 36px));flex-direction:column;gap:8px}.toast-message{padding:11px 12px;color:var(--text);text-align:left;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-card)}.toast-message.success{border-color:#97caa94d}.toast-message.error{border-color:#d9909052}.empty-state{display:grid;min-height:118px;place-items:center;gap:4px;padding:18px;color:var(--text-3);text-align:center;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.empty-state strong{color:var(--text)}.future-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;font-size:10.5px;color:#e0c278;text-transform:uppercase;letter-spacing:.06em;background:#e0c2781f;border:1px solid rgba(224,194,120,.22);border-radius:999px}.module-board{display:grid}.module-panel{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elev) 36%,transparent),transparent 42%),var(--bg)}.login-panel{width:min(420px,100%);padding:22px;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-card)}.login-brand{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--divider)}.login-brand .brand-mark{width:42px;height:42px}.login-brand h1,.login-brand .eyebrow{margin:0}.login-brand h1{font-family:Newsreader,Georgia,serif;font-size:24px;font-weight:400;line-height:1}.login-brand .eyebrow{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.12em}.login-form{display:flex;flex-direction:column;gap:14px;padding-top:18px}.login-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--text-2)}.login-form input{height:38px;padding:0 11px;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:7px}.login-form input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.form-error{padding:9px 10px;margin:0;font-size:12.5px;background:#d9909014;border:1px solid;border-radius:7px}.login-submit{justify-content:center;width:100%}@media(max-width:1180px){.app{grid-template-columns:220px minmax(0,1fr)}.kpi-grid,.bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mid-grid{grid-template-columns:1fr}.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary-grid>.card:first-child{grid-column:1 / -1}}@media(max-width:920px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);transform:translate(-100%);transition:transform .18s ease}.sidebar.open{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#0000006b;border:0}.mobile-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 2px 8px;font-size:12px;color:var(--text-3);text-transform:uppercase;letter-spacing:.1em}.menu-btn{display:grid}.topbar{flex-wrap:wrap;min-height:auto;padding:14px 18px}.search,.topbar-month-slot{order:3;width:100%;margin-left:0}.topbar-flex-spacer{display:none}.month-nav{margin-left:auto}.content{padding:18px}.kpi-grid,.bottom-grid{grid-template-columns:1fr}.donut-row,.balance-donut-row{grid-template-columns:1fr;justify-items:center}.donut-legend{width:100%}.dashboard-summary-grid{grid-template-columns:1fr}.dashboard-summary-grid>.card:first-child{grid-column:auto}.settings-grid,.telegram-grid{grid-template-columns:1fr}.settings-wide{grid-column:auto}.upload-panel,.module-panel{grid-template-columns:44px minmax(0,1fr)}.upload-actions,.module-actions{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap}.transactions-filter-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.transactions-filter-strip .transaction-search-control{grid-column:auto}.transactions-filter-strip .filter-badge{grid-column:1 / -1}}@media(max-width:560px){body{font-size:13px}.topbar{gap:10px;padding:12px}.crumbs{flex:1}.crumbs .sub,.search kbd{display:none}.month-nav{width:100%;order:4;justify-content:space-between;margin-left:0}.month-pill{flex:1;justify-content:center}.transactions-filter-strip,.application-date-range,.transaction-total-strip{grid-template-columns:1fr}.content{gap:14px;padding:14px 12px 28px}.card,.data-surface,.upload-panel,.module-panel,.saldo-card{padding:14px}.saldo-card .value,.exp-card .value{font-size:22px}.saldo-card .footnote,.exp-card .footnote{align-items:flex-start;flex-direction:column;gap:4px}.legend-row{grid-template-columns:12px minmax(0,1fr) 42px 76px;gap:8px;font-size:11.5px}.line-legend{flex-direction:column;gap:6px}.aviso{grid-template-columns:28px minmax(0,1fr)}.aviso .due{grid-column:2;text-align:left}.review-actions{flex-wrap:wrap;justify-content:flex-start}.form-grid{grid-template-columns:1fr}.form-actions{flex-wrap:wrap;justify-content:flex-start}.telegram-card-head{flex-direction:column}.installment-totals-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
