:root{color:#1f1633;background:#f7f3ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}.app{background:linear-gradient(135deg,#faf5ff,#fff 48%,#ede9fe);min-height:100vh;padding:32px}.center{place-items:center;gap:10px;display:grid}.shell{width:min(1560px,100%);margin:0 auto}.card{background:#fffffff0;border:1px solid #7c3aed24;border-radius:22px;box-shadow:0 24px 80px #3d236f1f}.login{width:min(420px,100%);padding:28px}.brand,.topbar,.toolbar,.actions{align-items:center;gap:14px;display:flex}.brand{margin-bottom:26px}.logo{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:16px;place-items:center;width:52px;height:52px;display:grid}.topbar{justify-content:space-between;align-items:flex-start;margin-bottom:22px}.topbar.compact{margin-bottom:16px}h1,h2,p{margin:0}h1{font-size:clamp(28px,4vw,42px)}h2{font-size:20px}.muted{color:#6b5f7d;margin-top:6px}.error{color:#b91c1c;background:#fee2e2;border-radius:12px;margin:12px 0;padding:10px 12px}.label{color:#3f3157;gap:8px;margin-bottom:16px;font-weight:700;display:grid}.input,.select{color:#241938;background:#fff;border:1px solid #ddd2f8;border-radius:14px;width:100%;padding:11px 12px}.inlineSelect{color:#241938;background:#fff;border:1px solid #ddd2f8;border-radius:12px;min-width:185px;padding:8px 10px}.inlineSelect:disabled{opacity:.65;cursor:wait}.rowFeedback{margin-top:6px;font-size:12px;font-weight:900;display:block}.rowFeedback.ok{color:#166534}.rowFeedback.errorText{color:#b91c1c}.btn{color:#fff;cursor:pointer;white-space:nowrap;background:#7c3aed;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:800;text-decoration:none;display:inline-flex}.btn.secondary{color:#4c1d95;background:#ede9fe}.btn.ghost{color:#5b21b6;background:0 0;border:1px solid #ddd6fe}.btn.danger{color:#fff;background:#dc2626}.btn.danger:hover{background:#b91c1c}.btn.icon{padding:9px}.btn:disabled{opacity:.65;cursor:wait}.months{gap:22px;display:grid}.month{padding:22px;overflow-x:auto}.month h2{margin-bottom:16px}.table{border-collapse:collapse;width:100%;min-width:1260px}th{color:#6b5f7d;letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:1px solid #eadfff;padding:12px 10px;font-size:12px}td{vertical-align:top;border-bottom:1px solid #f0e8ff;padding:14px 10px}.fileName{overflow-wrap:anywhere;max-width:280px;font-weight:800}.meta{margin-top:7px}.pill,.status{color:#5b21b6;background:#f3e8ff;border-radius:999px;align-items:center;gap:4px;width:fit-content;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.status{color:#166534;background:#dcfce7}.amount{color:#4c1d95;white-space:nowrap;font-weight:900}.desc{overflow-wrap:anywhere;max-width:220px}.empty{text-align:center;color:#6b5f7d;padding:30px}.modalOverlay{background:#140d2373;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{width:min(760px,100%);padding:24px}.formGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.app{padding:18px}.topbar,.toolbar{flex-direction:column;align-items:stretch}.formGrid{grid-template-columns:1fr}}
