:root{--primary:#6366f1;--primary-hover:#4f46e5;--bg-color:#0f172a;--surface:#1e293bb3;--surface-hover:#1e293be6;--border:#94a3b81a;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#10b981}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at top right, #1e1b4b, var(--bg-color));color:var(--text-main);min-height:100vh;padding:2rem;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}.container{max-width:1200px;margin:0 auto}header{text-align:center;margin-bottom:3rem;animation:.8s ease-out fadeInDown}header h1{background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}header p{color:var(--text-muted)}.upload-area{background:var(--surface);border:2px dashed var(--primary);text-align:center;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;margin-bottom:2rem;padding:3rem 2rem;transition:all .3s;animation:1s ease-out fadeIn}.upload-area:hover,.upload-area.dragover{background:var(--surface-hover);border-color:#818cf8;transform:translateY(-2px);box-shadow:0 10px 25px -5px #6366f133}.upload-icon{color:var(--primary);margin-bottom:1rem;font-size:3rem}#file-input{display:none}.dashboard-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;animation:.5s ease-out slideUp;display:none}.filter-group{flex-direction:column;flex:1;gap:.5rem;min-width:250px;display:flex}.filter-group label{color:var(--text-muted);font-size:.875rem;font-weight:500}select,input[type=date]{background:var(--surface);color:var(--text-main);border:1px solid var(--border);cursor:pointer;appearance:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:.5rem;outline:none;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}select:focus,input[type=date]:focus{border-color:var(--primary)}.summary-cards{gap:1.5rem;margin-bottom:2rem;display:none}.card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;flex:1;padding:1.5rem;transition:transform .3s}.card:hover{transform:translateY(-5px)}.card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.875rem}.card-value{color:var(--accent);font-size:2rem;font-weight:700}.table-container{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;animation:.6s ease-out slideUp;display:none;overflow:auto hidden}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--border);padding:1rem 1.5rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:#0003;font-size:.875rem;font-weight:600}tbody tr{transition:background-color .2s}tbody tr:hover{background:#ffffff0d}.badge{color:#818cf8;background:#6366f133;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-pix{color:#34d399;background:#10b98133}.badge-credito{color:#fbbf24;background:#f59e0b33}.amount{font-family:Roboto Mono,monospace;font-weight:600}.loading{text-align:center;color:var(--primary);padding:2rem;font-weight:500;display:none}.btn{text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;user-select:none;cursor:pointer;border:1px solid #0000;border-radius:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:500;line-height:1.5;transition:all .2s ease-in-out;display:inline-block}.btn-primary{color:#fff;background-color:var(--primary);border-color:var(--primary);box-shadow:0 4px 6px -1px #6366f166}.btn-primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
