:root{color:#1f2937;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.45;--ink: #1f2937;--muted: #6b7280;--line: #e2e8e5;--surface: #ffffff;--green: #1f7a5a;--green-dark: #155c43;--green-soft: #e7f4ed;--orange: #ad6b29;--danger: #a94040;--shadow: 0 12px 28px rgba(28, 57, 45, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px}body.modal-open{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(calc(100% - 24px),560px);margin:0 auto;padding:18px 0 40px}.topbar,.month-heading,.section-heading,.panel-heading,.expense-title-row,.batch-row-top,.batch-total{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{align-items:center;margin-bottom:18px}.topbar h1{margin:3px 0 0;font-size:clamp(1.45rem,6vw,2rem);letter-spacing:-.04em}.eyebrow{margin:0;color:var(--green);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.muted,.field-hint,.hero-support,.expense-meta,.expense-description{color:var(--muted)}.user-switcher{display:grid;gap:4px;color:var(--muted);font-size:.7rem;font-weight:700}.user-switcher select{min-width:112px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:8px 10px}.month-heading{margin-bottom:18px}.month-heading h2{margin:4px 0 0;font-size:clamp(1.8rem,7vw,2.8rem);letter-spacing:-.05em}.card{border:1px solid rgba(215,226,220,.86);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.hero-card{margin-bottom:12px;padding:22px;background:linear-gradient(135deg,#1f7a5a,#2c926c);color:#fff}.hero-label{font-size:.82rem;font-weight:700;opacity:.8}.hero-total{display:block;margin-top:4px;font-size:clamp(2.35rem,14vw,4rem);letter-spacing:-.08em;line-height:1.05}.hero-support{margin:12px 0 0;color:#ffffffc7;font-size:.9rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat-card{min-height:88px;padding:14px}.stat-card span{display:block;color:var(--muted);font-size:.78rem;font-weight:700}.stat-card strong{display:block;margin-top:7px;font-size:1.08rem;letter-spacing:-.04em}.balance-card{grid-column:1 / -1;background:#fffaf3;border-color:#f1dfc8}.balance-card strong{color:var(--orange);font-size:1.1rem}.balance-card small{display:block;margin-top:3px;color:#8d6b4b}.status-pill,.count-label{display:inline-flex;align-items:center;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.status-pill{padding:5px 9px}.status-pill.open,.status-pill.active{background:var(--green-soft);color:var(--green-dark)}.status-pill.voided{background:#f5e8e8;color:var(--danger)}.count-label{min-width:27px;justify-content:center;padding:5px 8px;background:#eef2f0;color:var(--muted)}.content-grid{display:grid;gap:14px;margin:14px 0}.section-card{padding:22px}.section-heading{align-items:flex-start;margin-bottom:18px}.section-heading h2,.panel-heading h2,.action-card h2{margin:4px 0 0;font-size:1.25rem;letter-spacing:-.04em}.action-card h2{font-size:1.45rem}.action-card .muted{margin:10px 0 20px;font-size:.91rem}.category-list,.expense-list{list-style:none;margin:0;padding:0}.category-list{display:grid;gap:12px}.category-list li{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:.92rem}.category-list li:last-child{padding-bottom:0;border-bottom:0}.category-list strong{color:var(--ink)}.action-buttons{display:grid;gap:9px}.home-actions{margin:14px 0;gap:10px}.insights-next{display:grid;gap:3px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.insights-next strong{font-size:1rem}.insights-next .eyebrow{color:var(--muted)}.button{min-height:46px;border:0;border-radius:12px;padding:10px 16px;font-weight:800;transition:transform .12s ease,background .12s ease}.button:active{transform:translateY(1px)}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green-dark)}.button.secondary{border:1px solid var(--line);background:#f9fbfa;color:var(--ink)}.button.wide{width:100%}.text-button{border:0;background:transparent;color:var(--green-dark);padding:2px 0;font-size:.78rem;font-weight:800}.danger-text{color:var(--danger)}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);font-size:1.3rem;line-height:1}.panel{margin:14px 0;padding:22px;scroll-margin-top:16px}.panel-heading{align-items:flex-start;margin-bottom:22px}.sheet-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#11251d7a;padding:12px}.sheet{width:min(100%,560px);max-height:min(90vh,760px);overflow-y:auto;border-radius:24px 24px 16px 16px;animation:sheet-in .18s ease-out}.sheet>.panel{margin:0;border:0;box-shadow:none}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.form-grid,.details-grid{display:grid;gap:14px}label{display:grid;gap:6px;color:#4b5563;font-size:.78rem;font-weight:800}input,select,textarea{width:100%;border:1px solid #d8e1dc;border-radius:11px;background:#fff;color:var(--ink);padding:11px 12px;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f7a5a1f}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}.amount-field{position:relative}.field-hint{min-height:18px;font-size:.75rem;font-weight:500}.field-hint.invalid,.form-error{color:var(--danger)}.form-error{min-height:18px;margin:12px 0 0;font-size:.78rem;font-weight:700}.details{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.details summary{cursor:pointer;color:var(--green-dark);font-size:.82rem;font-weight:800}.details summary span{color:var(--muted);font-weight:500}.details-grid{margin-top:14px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.form-actions .button{flex:1}.expense-form-title{display:flex;align-items:center;gap:9px}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.category-choice{display:grid;align-content:start;justify-items:start;gap:10px;min-height:94px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc;color:var(--ink);padding:12px;text-align:left;font-size:.82rem;font-weight:750}.category-choice:hover{border-color:var(--green);background:var(--green-soft)}.category-choice:focus-visible{border-color:var(--green);box-shadow:0 0 0 3px #1f7a5a24;outline:none}.category-icon,.selected-category-icon{display:inline-grid;place-items:center;color:var(--category-color, var(--green));background:var(--category-bg, var(--green-soft))}.category-icon{width:36px;height:36px;border-radius:11px}.selected-category-icon{width:28px;height:28px;flex:0 0 auto;border-radius:9px}.category-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.selected-category-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.category-tone-aluguel{--category-color: #a45b25;--category-bg: #fff0e5}.category-tone-contas-da-casa{--category-color: #a37b12;--category-bg: #fff8d9}.category-tone-mercado{--category-color: #34765a;--category-bg: #e4f5ea}.category-tone-transporte{--category-color: #356b9e;--category-bg: #e7f0fb}.category-tone-cuidado-pessoal{--category-color: #9c4d78;--category-bg: #f9e8f1}.category-tone-lazer-e-viagens{--category-color: #7155a5;--category-bg: #eee8fb}.category-tone-restaurantes{--category-color: #b45535;--category-bg: #ffebe4}.category-tone-tabaco{--category-color: #6b6b55;--category-bg: #eeeeE4}.category-tone-alcool{--category-color: #9d3c52;--category-bg: #f9e4e8}.category-tone-casa{--category-color: #4c7180;--category-bg: #e6f2f5}.batch-rows{display:grid;gap:12px}.batch-row{border:1px solid var(--line);border-radius:14px;padding:14px}.batch-row-top{margin-bottom:12px}.row-number{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green-dark);font-size:.75rem;font-weight:900}.batch-row label+label{margin-top:10px}.add-row-button{width:100%;margin-top:12px}.batch-total{margin:16px 0 2px;border-radius:12px;background:#f5f8f6;padding:15px;color:var(--muted);font-size:.84rem;font-weight:800}.batch-total strong{color:var(--ink);font-size:1.15rem}.ledger-card{margin-top:14px}.expense-list{display:grid;gap:0}.expense-item{position:relative;display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:16px 0}.expense-item:first-child{padding-top:0;border-top:0}.expense-item.is-voided{opacity:.58}.expense-main{min-width:0}.expense-title-row{justify-content:flex-start;gap:8px}.expense-title-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-meta,.expense-description{display:block;margin-top:5px;font-size:.78rem}.expense-description{color:#4b5563}.expense-side{flex:0 0 auto;text-align:right}.expense-side>strong{display:block;font-size:.93rem}.expense-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.void-confirmation{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;border-radius:10px;background:#fff4f4;padding:10px;color:var(--danger);font-size:.78rem;font-weight:700}.empty-state{margin:0;color:var(--muted);font-size:.9rem}.empty-state.compact{font-size:.82rem}.readonly-note{margin:-8px 0 14px;border-radius:12px;background:#fff8eb;padding:11px 13px;color:#8d6b4b;font-size:.82rem;font-weight:700}.toast{position:fixed;right:16px;bottom:16px;left:16px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:14px;background:#173d2f;box-shadow:0 14px 30px #1030243d;color:#fff;padding:14px 16px;font-size:.86rem;font-weight:700}.toast-error{background:#6f2929}.toast-action{color:#baf1d5}.toast-error .toast-action{color:#fff}@media(min-width:680px){.app-shell{padding-top:28px}.content-grid{grid-template-columns:1fr 1fr;align-items:stretch}.form-grid{grid-template-columns:1fr 1fr}.amount-field{grid-column:1 / -1}.details-grid{grid-template-columns:1fr 1fr}.details-grid label:last-child{grid-column:1 / -1}.category-grid{grid-template-columns:repeat(3,1fr)}.toast{right:24px;left:auto;min-width:300px}.sheet-backdrop{align-items:center;padding:24px}.sheet{border-radius:20px}}@media(min-width:960px){.app-shell{width:min(calc(100% - 64px),560px)}.hero-card{padding:34px}.section-card,.panel{padding:26px}.category-grid{grid-template-columns:repeat(5,1fr)}}.sheet .category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
