:root{--roxo:#6b2d5c;--roxo-esc:#4a1f40;--rosa:#e84393;--fundo:#f5f2f6;--borda:#e4dbe4;--verde:#27ae60;--vermelho:#c0392b}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--fundo);color:#333;display:flex;min-height:100vh}
a{text-decoration:none;color:var(--roxo)}

/* Sidebar */
#sidebar{width:240px;background:var(--roxo-esc);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;bottom:0}
#sidebar .marca{padding:24px 20px;font-size:1.5rem;font-weight:800;border-bottom:1px solid rgba(255,255,255,.15)}
#sidebar .marca img{width:46px;background:#fff;border-radius:50%;padding:3px;vertical-align:middle;margin-right:8px}
#sidebar .marca span{display:block;font-size:.75rem;font-weight:400;color:#d8b8cf}
#sidebar nav{flex:1;padding:16px 0}
#sidebar nav a{display:block;padding:13px 22px;color:#e9d4e2;font-weight:600}
#sidebar nav a:hover,#sidebar nav a.ativo{background:var(--roxo);color:#fff;border-left:4px solid var(--rosa)}
#sidebar .rodape-menu{padding:16px 22px;border-top:1px solid rgba(255,255,255,.15)}
#sidebar .rodape-menu a{display:block;color:#d8b8cf;padding:6px 0;font-size:.9rem}

main{margin-left:240px;flex:1;padding:32px}
h1{color:var(--roxo);margin-bottom:24px;font-size:1.6rem}
h2{color:var(--roxo);font-size:1.15rem;margin:18px 0 10px}

/* Cards e grades */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-bottom:28px}
.card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 3px 10px rgba(107,45,92,.08)}
.card .num{font-size:2rem;font-weight:800;color:var(--roxo)}
.card .rotulo{color:#777;font-size:.9rem}
.card.destaque{border-top:4px solid var(--rosa)}
.painel{background:#fff;border-radius:12px;padding:22px;box-shadow:0 3px 10px rgba(107,45,92,.08);margin-bottom:24px}

/* Tabelas */
table{width:100%;border-collapse:collapse;font-size:.92rem}
th{text-align:left;color:var(--roxo);border-bottom:2px solid var(--borda);padding:10px 8px}
td{padding:10px 8px;border-bottom:1px solid var(--borda)}
tr:hover td{background:#faf5f9}
.badge{padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:700}
.badge.ativa{background:#e8f8ef;color:var(--verde)}
.badge.saida{background:#fdeeec;color:var(--vermelho)}
.badge.receita{background:#e8f8ef;color:var(--verde)}
.badge.despesa{background:#fdeeec;color:var(--vermelho)}

/* Botões e formulários */
.btn{display:inline-block;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-weight:700;font-size:.95rem;background:var(--roxo);color:#fff}
.btn:hover{background:var(--rosa)}
.btn.pequeno{padding:5px 10px;font-size:.8rem}
.btn.claro{background:#eee;color:#444}
.btn.perigo{background:var(--vermelho)}
.acoes{display:flex;gap:6px}
input,select,textarea{width:100%;padding:10px;border:1px solid #ccc;border-radius:8px;font-family:inherit;font-size:.95rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--rosa)}
label{font-size:.83rem;font-weight:700;color:#555;display:block;margin-bottom:4px}
.campo{margin-bottom:14px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.form-grid .larga{grid-column:1/-1}
.sec-form{grid-column:1/-1;color:var(--rosa);font-weight:800;border-bottom:2px solid var(--borda);padding-bottom:6px;margin-top:10px}
.barra-topo{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.barra-topo input{max-width:320px}

/* Modal */
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;overflow:auto;padding:30px}
.modal.aberto{display:flex;align-items:flex-start;justify-content:center}
.modal-caixa{background:#fff;border-radius:14px;padding:28px;max-width:900px;width:100%}
.modal-caixa h2{margin-top:0}
.modal-rodape{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* Gráfico de barras simples */
.grafico{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:10px}
.grafico .barra{flex:1;background:linear-gradient(180deg,var(--rosa),var(--roxo));border-radius:6px 6px 0 0;position:relative;min-height:4px}
.grafico .barra span{position:absolute;bottom:-22px;left:0;right:0;text-align:center;font-size:.72rem;color:#777}
.grafico .barra b{position:absolute;top:-20px;left:0;right:0;text-align:center;font-size:.75rem;color:var(--roxo)}
.grafico-wrap{padding-bottom:26px}

/* Login */
.login-body{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--roxo-esc),var(--roxo) 60%,var(--rosa))}
.login-caixa{background:#fff;border-radius:16px;padding:40px;width:380px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-caixa h1{text-align:center;font-size:1.5rem}
.login-caixa .sub{text-align:center;color:#888;font-size:.85rem;margin:-18px 0 24px}
.erro{background:#fdeeec;color:var(--vermelho);padding:10px;border-radius:8px;font-size:.85rem;margin-bottom:14px;display:none}

@media(max-width:900px){
  #sidebar{width:100%;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}
  #sidebar nav{display:flex;flex-wrap:wrap;padding:0}
  body{flex-direction:column}
  main{margin-left:0;padding:18px}
  .form-grid{grid-template-columns:1fr}
}
@media print{
  #sidebar,.nao-imprimir{display:none!important}
  main{margin:0;padding:0}
  body{background:#fff}
}
