:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg-surface:#1f2028;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--success:#34d399;--error:#f87171;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);font:16px/1.5 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{touch-action:pan-x pan-y;-ms-content-zooming:none}body{touch-action:pan-x pan-y;margin:0}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;gap:24px;width:240px;height:100vh;padding:24px 16px;display:flex;position:fixed;top:0;left:0}.sidebar-footer{gap:12px;margin-top:auto;display:grid}.sidebar-user{color:var(--text-h);word-break:break-word;margin:0;font-size:13px}.sidebar-title{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-nav a{color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;text-decoration:none;transition:background .15s,color .15s;display:block}.sidebar-nav a:hover{background:var(--accent-bg);color:var(--text-h)}.sidebar-nav a.active{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border)}.main-content{flex:1;margin-left:240px;padding:32px 40px}.sidebar-backdrop,.mobile-topbar{display:none}.hamburger-button{background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:space-between;width:40px;height:40px;padding:11px 9px;display:inline-flex}.hamburger-button span{background:var(--text-h);border-radius:1px;width:100%;height:2px;display:block}.mobile-topbar-title{color:var(--text-h);font-size:15px;font-weight:600}.page{max-width:800px}.page-wide{max-width:1200px}.page h2{color:var(--text-h);margin:0 0 8px;font-size:24px;font-weight:600}.page>p{margin:0 0 24px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 24px;display:flex}.page-header h2{color:var(--text-h);margin:0 0 8px;font-size:24px;font-weight:600}.page-header p{margin:0}.icon-button{background:var(--bg-surface);border:1px solid var(--border);width:40px;height:40px;color:var(--text-h);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.icon-button:hover{border-color:var(--accent-border);color:var(--accent)}.icon-button[aria-pressed=true]{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}[data-values-hidden=true] .dashboard-chart-value,[data-values-hidden=true] .dashboard-stat-card-value,[data-values-hidden=true] .dashboard-detail-list strong,[data-values-hidden=true] .dashboard-chart-axis{filter:blur(7px);-webkit-user-select:none;user-select:none}.dashboard-chart-value,.dashboard-stat-card-value,.dashboard-detail-list strong,.dashboard-chart-axis{transition:filter .18s}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.card:hover{border-color:var(--accent-border);box-shadow:var(--shadow)}.card h3{color:var(--text-h);margin:0 0 8px;font-size:16px}.card p{margin:0;font-size:14px}.dashboard-chart-card,.dashboard-stat-card,.dashboard-detail-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px}.dashboard-chart-card{flex-direction:column;min-height:380px;margin:24px 0 20px;padding:28px 28px 24px;display:flex}.dashboard-chart-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16px;display:flex}.dashboard-chart-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px}.dashboard-chart-value{color:var(--text-h);margin-top:6px;font-size:40px;font-weight:600;line-height:1.05;display:block}.dashboard-chart-heading{text-align:right;max-width:320px}.dashboard-chart-heading h3{color:var(--text-h);margin:0;font-size:16px}.dashboard-chart-heading p{margin:4px 0 0;font-size:13px}.dashboard-chart-frame{flex:1;min-height:260px;margin-top:8px;position:relative}.dashboard-chart-frame svg{width:100%;height:100%;display:block}.dashboard-chart-grid{stroke:var(--border);stroke-width:1px;stroke-dasharray:2 5}.dashboard-chart-area{fill:url(#dashboardChartGradient)}.dashboard-chart-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.dashboard-chart-axis{color:var(--text);pointer-events:none;background:#16171dbf;border-radius:4px;padding:1px 6px;font-size:11px;position:absolute;right:4px}.dashboard-chart-axis--max{top:4px}.dashboard-chart-axis--min{bottom:4px}.dashboard-chart-frame--empty{color:var(--text);text-align:center;justify-content:center;align-items:center;font-size:14px;display:flex}.dashboard-chart-frame--empty p{margin:0}.dashboard-chart-footer{color:var(--text);justify-content:space-between;margin-top:10px;font-size:12px;display:flex}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:16px;display:grid}.dashboard-stat-card{gap:6px;padding:16px 18px;display:grid}.dashboard-stat-card-label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0;font-size:11px}.dashboard-stat-card-value{color:var(--text-h);font-size:22px;font-weight:600;line-height:1.15}.dashboard-stat-card-sub{color:var(--text);margin:0;font-size:12px}.dashboard-details{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px;display:grid}.dashboard-detail-card{padding:20px 22px}.dashboard-detail-card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 6px;font-size:12px}.dashboard-detail-section+.dashboard-detail-section{margin-top:20px}.dashboard-detail-section h4{color:var(--text-h);margin:0;font-size:13px;font-weight:500}.dashboard-detail-list{gap:0;margin:10px 0 0;padding:0;list-style:none;display:grid}.dashboard-detail-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;font-size:13px;display:flex}.dashboard-detail-list li:first-child{border-top:0}.dashboard-detail-list li span{overflow-wrap:anywhere;min-width:0}.dashboard-detail-list li strong{color:var(--text-h);white-space:nowrap;font-weight:500}.dashboard-detail-muted{color:var(--text);font-size:12px}.dashboard-detail-empty{color:var(--text);margin:10px 0 0;font-size:13px}@media (width<=860px){.dashboard-hero{grid-template-columns:1fr}.dashboard-hero-card,.dashboard-chart-card{min-height:0}.dashboard-chart-frame{min-height:160px}.dashboard-hero-value{font-size:30px}}.form-group{margin-bottom:16px}.form-group label{color:var(--text-h);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-group input,.form-group select{background:var(--bg-surface);border:1px solid var(--border);width:100%;color:var(--text-h);border-radius:6px;padding:10px 12px;font-size:14px}.form-group input:focus,.form-group select:focus{border-color:var(--accent);outline:none}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text-h);border:1px solid var(--border);background:0 0}.btn-secondary:hover{border-color:var(--accent-border);background:var(--accent-bg)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.qr-scanner-overlay{z-index:1000;background:#000c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.qr-scanner-panel{background:var(--bg-surface);border:1px solid var(--border);width:min(100%,520px);box-shadow:var(--shadow);border-radius:12px;padding:20px}.qr-scanner-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.qr-scanner-video-wrapper{aspect-ratio:1;background:#000;border-radius:8px;position:relative;overflow:hidden}.qr-scanner-video{object-fit:cover;width:100%;height:100%;display:block}.qr-scanner-status{color:var(--text-h);background:#0006;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.qr-scanner-zoom{flex-direction:column;gap:6px;margin-top:12px;display:flex}.qr-scanner-zoom-label{color:var(--text-h);justify-content:space-between;font-size:13px;display:flex}.qr-scanner-zoom-value{font-variant-numeric:tabular-nums;color:var(--text)}.qr-scanner-zoom input[type=range]{width:100%;accent-color:var(--accent)}.auth-loading{place-items:center;min-height:100vh;display:grid}.login-layout{background:radial-gradient(circle at top, #c084fc2e, transparent 30%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);width:min(100%,420px);box-shadow:var(--shadow);background:#1f2028eb;border-radius:16px;padding:32px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:12px}.login-panel h1{color:var(--text-h);margin:0;font-size:28px;line-height:1.2}.login-copy{margin:12px 0 24px}.login-form{gap:4px;display:grid}.login-button{justify-content:center;width:100%;margin-top:8px}.result-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin-top:24px;padding:16px}.result-box pre{font-family:var(--mono);color:var(--text-h);white-space:pre-wrap;word-break:break-all;margin:0;font-size:13px}.alert{border-radius:6px;margin-top:16px;padding:12px 16px;font-size:14px}.alert-error{color:var(--error);background:#f871711a;border:1px solid #f871714d}.alert-success{color:var(--success);background:#34d3991a;border:1px solid #34d3994d}.table-wrap{overflow-x:auto}.filters-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;margin-bottom:24px;padding:20px}.filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.filters-actions{gap:12px;margin-top:8px;display:flex}.filters-panel-inner,.filters-panel-body{gap:8px;display:grid}.transaction-action-inner{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.category-trigger,.filters-mobile-bar,.filters-chips{display:none}.page-toolbar{justify-content:space-between;gap:16px;margin:16px 0;font-size:14px;display:flex}.page-toolbar p{margin:0}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}th{color:var(--text-h);background:var(--bg-surface);font-weight:500}td{color:var(--text)}td input[type=text]{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text-h);border-radius:4px;padding:6px 8px;font-size:13px}td input[type=text]:focus{border-color:var(--accent);outline:none}.account-identity{flex-direction:column;gap:2px;display:flex}.transaction-description{flex-direction:column;gap:4px;display:flex}.transaction-description strong,.account-identity strong{color:var(--text-h);font-weight:500}.account-identity-sub{color:var(--text);font-size:12px}.mobile-inline-label{display:none}.compact-amount{color:var(--text-h);font-weight:600}.compact-status-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;line-height:1.2;display:inline-flex}.invoice-status-cell--aberta .compact-status-chip{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.invoice-status-cell--fechada .compact-status-chip{color:var(--text-h);background:#9ca3af1f;border-color:#9ca3af3d}.invoice-status-cell--paga .compact-status-chip{color:var(--success);background:#34d3991f;border-color:#34d3993d}.btn-sm{padding:6px 12px;font-size:13px}.row-feedback{margin-left:10px;font-size:12px}.row-feedback-success{color:var(--success)}.row-feedback-error{color:var(--error)}.text-right{text-align:right}.pagination{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}@media (width<=720px){.sidebar{z-index:100;box-shadow:var(--shadow);padding-top:calc(24px + var(--safe-area-top));padding-bottom:calc(24px + var(--safe-area-bottom));transition:transform .22s;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-backdrop{z-index:99;background:#0000008c;display:block;position:fixed;inset:0}.main-content{padding:0 16px calc(40px + var(--safe-area-bottom));margin-left:0}.mobile-topbar{z-index:50;padding:calc(12px + var(--safe-area-top)) 16px 12px;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:12px;margin:0 -16px 16px;display:flex;position:sticky;top:0}.page-header{flex-direction:column;align-items:stretch}.filters-panel{background:0 0;border:0;border-radius:0;margin-bottom:16px;padding:0}.filters-panel-inner{opacity:0;grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .28s,opacity .22s,margin-top .22s;display:grid;overflow:hidden}.filters-panel-body{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;min-height:0;padding:16px;overflow:hidden}.filters-panel.is-open .filters-panel-inner{opacity:1;grid-template-rows:1fr;margin-top:10px}.filters-mobile-bar{align-items:center;gap:10px;margin-bottom:4px;display:flex}.filters-toggle{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex}.filters-toggle:active{background:var(--accent-bg)}.filters-toggle svg{color:var(--text)}.filters-toggle-chevron{margin-left:2px;transition:transform .25s}.filters-toggle-chevron.is-open{transform:rotate(180deg)}.filters-count{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:2px;padding:0 6px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.filters-clear-inline{color:var(--text);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:9px 12px;font-size:13px}.filters-clear-inline:active{color:var(--accent)}.filters-chips{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.filter-chip{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:5px 6px 5px 10px;font-size:12px;font-weight:500;display:inline-flex}.filter-chip-label{opacity:.7;font-weight:400}.filter-chip-value{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.filter-chip-x{background:#c084fc33;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-left:2px;font-size:14px;line-height:1;display:inline-flex}.filters-actions,.page-toolbar,.pagination{flex-direction:column;align-items:stretch}.dashboard-chart-card{min-height:0;padding:20px 18px 18px}.dashboard-chart-header{flex-direction:column;gap:8px}.dashboard-chart-heading{text-align:left;max-width:none}.dashboard-chart-value{font-size:30px}.dashboard-chart-frame{min-height:200px}.login-panel{padding:24px}.table-wrap{overflow-x:visible}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap td{width:100%;display:block}.table-wrap thead{display:none}.table-wrap tr{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px 14px}.table-wrap td{border-bottom:1px solid var(--border);text-align:left;padding:8px 0}.table-wrap td:last-child{border-bottom:0;padding-bottom:0}.table-wrap td:first-child{padding-top:0}.table-wrap td[data-label]:before{content:attr(data-label);color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:11px;font-weight:500;display:block}.table-wrap td.text-right{text-align:left}.table-wrap-mobile-compact{border-top:1px solid var(--border)}.table-wrap-mobile-compact tr.compact-mobile-row{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;gap:4px 12px;margin-bottom:0;padding:10px 0;display:grid}.table-wrap-mobile-compact tbody tr.compact-mobile-row:last-child{border-bottom:0}.table-wrap-mobile-compact tr.compact-mobile-row td{border:0;width:auto;min-width:0;padding:0}.table-wrap-mobile-compact td[data-label]:before{display:none}.table-wrap-mobile-compact .mobile-inline-label{color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-right:4px;font-size:10px;display:inline}.table-wrap-mobile-compact .transaction-description{gap:2px}.table-wrap-mobile-compact .transaction-description strong{font-size:13px}.table-wrap-mobile-compact .account-identity-sub{font-size:11px}.table-wrap-mobile-compact td.text-right,.table-wrap-mobile-compact .invoice-parcels-cell{text-align:right}.compact-mobile-row--purchase{grid-template-columns:minmax(0,1fr) auto;align-items:start}.purchase-main-cell{grid-area:1/1}.purchase-amount-cell{grid-area:1/2}.purchase-date-cell{color:var(--text);grid-area:2/1;font-size:12px}.purchase-total-cell{grid-area:2/2}.purchase-installment-cell{grid-area:3/1/auto/-1}.purchase-installment-cell .transaction-description{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 8px;display:grid}.purchase-installment-cell .transaction-description strong{white-space:nowrap}.compact-mobile-row--invoice,.compact-mobile-row--transaction{grid-template-columns:minmax(0,1fr) auto;align-items:start}.transaction-main-cell{grid-area:1/1}.transaction-amount-cell{grid-area:1/2}.transaction-date-cell{color:var(--text);grid-area:2/1;font-size:12px}.transaction-account-cell{color:var(--text);text-align:right;grid-area:2/2;font-size:12px}.compact-mobile-row--transaction{grid-template-columns:minmax(0,1fr) auto;align-items:start}.transaction-category-cell{grid-area:3/1/auto/-1}.transaction-category-cell[data-label]:before{display:none}.category-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;padding:0;display:grid}.category-trigger-label{color:var(--text);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:500}.category-trigger-value{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.category-trigger.is-empty .category-trigger-value{color:var(--text);font-style:italic;font-weight:400}.category-trigger-chevron{color:var(--text);flex-shrink:0;align-self:center;transition:transform .25s}.compact-mobile-row--transaction.is-expanded .category-trigger-chevron{color:var(--accent);transform:rotate(180deg)}.category-editor{opacity:0;grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .26s,margin-top .22s,opacity .2s;display:grid;overflow:hidden}.category-editor>*{min-height:0;overflow:hidden}.compact-mobile-row--transaction.is-expanded .category-editor{opacity:1;grid-template-rows:1fr;margin-top:8px}.transaction-category-cell .category-editor input[type=text]{background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;font-size:14px}.transaction-category-cell .category-editor input[type=text]:focus{border-color:var(--accent);outline:none}.transaction-action-cell{opacity:0;grid-area:4/1/auto/-1;grid-template-rows:0fr;margin-top:0;padding:0;transition:grid-template-rows .26s,margin-top .22s,opacity .2s;display:grid;overflow:hidden}.transaction-action-cell>*{min-height:0}.compact-mobile-row--transaction.is-expanded .transaction-action-cell{opacity:1;grid-template-rows:1fr;margin-top:8px;padding-bottom:2px}.transaction-action-cell .btn-sm{justify-content:center;width:100%;min-width:0}.invoice-status-cell{grid-area:1/1}.invoice-total-cell{grid-area:1/2}.invoice-period-cell{color:var(--text-h);grid-area:2/1/auto/-1;font-weight:500}.invoice-due-cell{grid-area:3/1}.invoice-parcels-cell{grid-area:3/2}.invoice-origin-cell{color:var(--text);grid-area:4/1/auto/-1;font-size:12px}.table-wrap td input[type=text]{padding:8px 10px;font-size:14px}.table-wrap .btn-sm{justify-content:center;width:100%}.row-feedback{margin:8px 0 0;display:block}}
