*{margin:0;padding:0;box-sizing:border-box}:root{--cor-primaria: #3B82F6;--cor-primaria-hover: #2563EB;--cor-sucesso: #10B981;--cor-alerta: #EF4444;--cor-texto: #1F2937;--cor-texto-secundario: #6B7280;--cor-fundo: #F3F4F6;--cor-card: #FFFFFF;--cor-borda: #E5E7EB;--sombra: 0 4px 6px -1px rgba(0, 0, 0, .1);--raio: 12px}body[data-theme=dark]{--cor-primaria: #60A5FA;--cor-primaria-hover: #3B82F6;--cor-sucesso: #34D399;--cor-alerta: #F87171;--cor-texto: #F3F4F6;--cor-texto-secundario: #9CA3AF;--cor-fundo: #111827;--cor-card: #1F2937;--cor-borda: #374151;--sombra: 0 4px 6px -1px rgba(0, 0, 0, .5)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--cor-fundo);color:var(--cor-texto);line-height:1.6;min-height:100vh}.oculto{display:none!important}.tela{min-height:100vh;display:flex;flex-direction:column}#tela-login,#tela-cadastro{justify-content:center;align-items:center;padding:20px;background:linear-gradient(135deg,var(--cor-primaria) 0%,#1D4ED8 100%)}.card-login{background:var(--cor-card);border-radius:var(--raio);padding:32px 24px;width:100%;max-width:360px;box-shadow:var(--sombra)}.card-login h1{text-align:center;color:var(--cor-primaria);font-size:1.75rem;margin-bottom:4px}.card-login .subtitle{text-align:center;color:var(--cor-texto-secundario);font-size:.875rem;margin-bottom:24px}#tela-splash{justify-content:center;align-items:center;background:linear-gradient(135deg,var(--cor-primaria) 0%,#1D4ED8 100%)}.splash-content{text-align:center;color:#fff}.logo{font-size:4rem;font-weight:700;margin-bottom:16px;opacity:.9}.header{background:var(--cor-card);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:10}.header h1{font-size:1.25rem;color:var(--cor-primaria)}.main{padding:16px;display:flex;flex-direction:column;gap:16px}.card{background:var(--cor-card);border-radius:var(--raio);padding:20px;box-shadow:var(--sombra)}.card h2,.card h3{font-size:1.125rem;margin-bottom:16px;color:var(--cor-texto)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header h3{margin:0}.badge{background:var(--cor-fundo);color:var(--cor-texto-secundario);padding:4px 8px;border-radius:6px;font-size:.75rem}.card-info{background:var(--cor-card);border-radius:var(--raio);padding:20px;box-shadow:var(--sombra);display:flex;flex-direction:column;align-items:center;border-top:4px solid var(--cor-primaria)}.card-info.card-restante{border-top-color:#8b5cf6}.card-info.card-restante .valor{color:#8b5cf6}.card-info .label{font-size:.875rem;color:var(--cor-texto-secundario);text-transform:uppercase;letter-spacing:.5px}.card-info .valor{font-size:1.75rem;font-weight:700;color:var(--cor-primaria);margin-top:4px}.card-saldo{background:var(--cor-card);border-radius:var(--raio);padding:24px 20px;box-shadow:var(--sombra);display:flex;flex-direction:column;align-items:center;border-left:6px solid var(--cor-sucesso);transition:border-color .3s}.card-saldo.negativo{border-left-color:var(--cor-alerta)}.card-saldo.negativo #saldo-valor{color:var(--cor-alerta)}.card-saldo .label{font-size:.875rem;color:var(--cor-texto-secundario);text-transform:uppercase;letter-spacing:.5px}.card-saldo .valor{font-size:2.5rem;font-weight:700;color:var(--cor-sucesso);margin:8px 0}.card-saldo .info{font-size:.875rem;color:var(--cor-texto-secundario)}form{display:flex;flex-direction:column;gap:16px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:.875rem;font-weight:500;color:var(--cor-texto)}input[type=text],input[type=password],input[type=date],input[type=number]{padding:12px 16px;border:2px solid var(--cor-borda);border-radius:8px;font-size:1rem;transition:border-color .2s;width:100%;background:var(--cor-card);color:var(--cor-texto);min-height:48px}select{padding:12px 16px;border:2px solid var(--cor-borda);border-radius:8px;font-size:1rem;transition:border-color .2s;width:100%;background:var(--cor-card);color:var(--cor-texto);min-height:54px}input:focus{outline:none;border-color:var(--cor-primaria)}input::placeholder{color:#9ca3af}.checkbox{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--cor-texto-secundario);cursor:pointer}.checkbox input{width:18px;height:18px;accent-color:var(--cor-primaria)}.btn-primario{background:var(--cor-primaria);color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;width:100%;min-height:48px}.btn-primario:hover,.btn-primario:active{background:var(--cor-primaria-hover)}.btn-texto{background:transparent;color:var(--cor-primaria);border:none;font-size:.875rem;font-weight:500;cursor:pointer;padding:8px 12px}.btn-texto:hover{background:#3b82f61a;border-radius:6px}.erro{color:var(--cor-alerta);font-size:.875rem;text-align:center;margin-top:12px;min-height:20px}.info-text{color:var(--cor-texto-secundario);font-size:.875rem;margin-bottom:16px}.lista-despesas{display:flex;flex-direction:column;gap:8px}.lista-despesas .vazio{text-align:center;color:var(--cor-texto-secundario);padding:24px;font-size:.875rem}.despesa-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--cor-fundo);border-radius:8px;transition:background .2s}.despesa-item:active{background:var(--cor-borda)}.despesa-info{display:flex;flex-direction:column;gap:2px}.despesa-descricao{font-weight:500;color:var(--cor-texto)}.despesa-data{font-size:.75rem;color:var(--cor-texto-secundario)}.despesa-categoria{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;color:var(--cor-texto-secundario);margin-left:4px}.despesa-categoria-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.despesa-valor{font-weight:600;color:var(--cor-alerta);font-size:1.125rem}.btn-deletar{background:transparent;border:none;color:var(--cor-texto-secundario);font-size:1.25rem;cursor:pointer;padding:4px 8px;margin-left:8px}.btn-deletar:active{color:var(--cor-alerta)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(100px);background:#333;color:#fff;padding:12px 24px;border-radius:8px;font-size:.875rem;opacity:0;transition:all .3s;z-index:100}body[data-theme=dark] .toast{background:#e5e7eb;color:#111827}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.btn-menu{background:transparent;border:none;font-size:1.5rem;color:var(--cor-primaria);cursor:pointer;padding:4px 8px;line-height:1}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:20;opacity:0;transition:opacity .3s ease}.menu-overlay:not(.oculto){opacity:1}.menu-lateral{position:fixed;top:0;right:0;width:260px;height:100%;background:var(--cor-card);box-shadow:-4px 0 12px #00000026;z-index:30;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease}.menu-lateral:not(.oculto){transform:translate(0)}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--cor-borda)}.menu-header h2{font-size:1.125rem;color:var(--cor-texto)}.btn-fechar{background:transparent;border:none;font-size:1.5rem;color:var(--cor-texto-secundario);cursor:pointer;padding:4px;line-height:1}.menu-lista{list-style:none;flex:1;padding:8px 0}.menu-lista li{margin:0}.menu-item{width:100%;background:transparent;border:none;text-align:left;padding:14px 20px;font-size:1rem;color:var(--cor-texto);cursor:pointer;display:flex;align-items:center;gap:12px;transition:background .2s}.menu-item:hover,.menu-item:active{background:var(--cor-fundo)}.menu-rodape{border-top:1px solid var(--cor-borda);padding:8px 0}.menu-sair{color:var(--cor-alerta);font-weight:500}.lista-categorias{display:flex;flex-direction:column;gap:8px}.categoria-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--cor-fundo);border-radius:8px}.categoria-info{display:flex;align-items:center;gap:10px}.categoria-cor{width:16px;height:16px;border-radius:50%;flex-shrink:0}.categoria-nome{font-weight:500;color:var(--cor-texto)}.lista-selecao-categorias{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.categoria-opcao{display:flex;align-items:center;gap:12px;padding:14px;background:var(--cor-fundo);border-radius:8px;cursor:pointer;transition:background .2s;border:none;width:100%;text-align:left;font-size:1rem;color:var(--cor-texto)}.categoria-opcao:hover,.categoria-opcao:active{background:var(--cor-borda)}.categoria-opcao .categoria-cor{width:20px;height:20px;border-radius:50%}.btn-secundario{background:transparent;color:var(--cor-texto-secundario);border:2px solid var(--cor-borda);padding:14px 24px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;width:100%}.btn-secundario:hover,.btn-secundario:active{background:var(--cor-fundo)}.cor-picker-wrapper{display:flex;gap:8px;align-items:center}.cor-picker-wrapper input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:48px;padding:4px;border:2px solid var(--cor-borda);border-radius:8px;background:var(--cor-card);cursor:pointer}.cor-picker-wrapper input[type=color]::-webkit-color-swatch-wrapper{padding:0}.cor-picker-wrapper input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.btn-refresh-cor{background:var(--cor-fundo);border:2px solid var(--cor-borda);border-radius:8px;color:var(--cor-texto);font-size:1.25rem;cursor:pointer;padding:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:background .2s}.btn-refresh-cor:hover,.btn-refresh-cor:active{background:var(--cor-borda)}.mes-seletor{display:flex;align-items:center;justify-content:center;gap:16px}.btn-mes-nav{background:transparent;border:none;color:var(--cor-primaria);font-size:1.75rem;font-weight:300;cursor:pointer;padding:4px 12px;border-radius:8px;line-height:1;transition:background .2s}.btn-mes-nav:hover{background:var(--cor-borda)}.btn-mes-nav:disabled{color:var(--cor-borda);cursor:not-allowed;background:transparent}.mes-display{font-size:1.125rem;font-weight:600;color:var(--cor-texto);text-align:center;min-width:100px;-webkit-user-select:none;user-select:none}.relatorio-total{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.relatorio-label{font-size:.875rem;color:var(--cor-texto-secundario);text-transform:uppercase;letter-spacing:.5px}.relatorio-valor{font-size:2rem;font-weight:700;color:var(--cor-alerta);margin-top:4px}.grafico-container{display:flex;justify-content:center;margin-bottom:20px}.grafico-container svg{max-width:240px;width:100%}.relatorio-legenda{display:flex;flex-direction:column;gap:8px}.legenda-item{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--cor-texto)}.legenda-cor{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legenda-nome{flex:1}.legenda-valor{font-weight:600}.legenda-porcentagem{color:var(--cor-texto-secundario);font-size:.8125rem;min-width:36px;text-align:right}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40;opacity:0;transition:opacity .3s ease}.modal-overlay:not(.oculto){opacity:1}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:90%;max-width:420px;max-height:80vh;background:var(--cor-card);border-radius:var(--raio);box-shadow:var(--sombra);z-index:50;display:flex;flex-direction:column;opacity:0;transition:all .3s ease;overflow:hidden}.modal:not(.oculto){opacity:1;transform:translate(-50%,-50%) scale(1)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--cor-borda)}.modal-header h2{font-size:1.125rem;color:var(--cor-texto)}.modal-conteudo{padding:20px;overflow-y:auto}.modal-conteudo p{margin-bottom:12px;color:var(--cor-texto);font-size:.9375rem;line-height:1.6}.modal-conteudo ul{margin-bottom:16px;padding-left:20px}.modal-conteudo li{margin-bottom:8px;color:var(--cor-texto);font-size:.9375rem;line-height:1.5}@media (min-width: 768px){.main{max-width:600px;margin:0 auto;padding:24px}.card-saldo .valor{font-size:3rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card,.card-info,.card-saldo{animation:fadeIn .3s ease}.despesa-item{animation:fadeIn .2s ease}
