*{padding:0;margin:0;font-size:13px;box-sizing:border-box;text-decoration:none;outline:none;border:none;font-family:Arial,Helvetica,sans-serif}body{min-height:100vh;min-width:100vw;background:#fff}input,select,textarea{width:100%;border:1px solid #ccc;padding:8px 10px;border-radius:6px}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;background:#8080802b}input[type=checkbox]{width:20px;padding:0}button{cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:none;outline:none;border-radius:6px;background:#7c3aed;color:#fff;font-weight:500;transition:all .2s ease}button:hover:not(:disabled){background:#5b21b6}button:active:not(:disabled){transform:scale(.98)}button:focus-visible{box-shadow:0 0 0 3px #7c3aed4d}button:disabled{cursor:not-allowed;background:#bdbdbd;opacity:.7}button.icon{padding:0;height:32px;width:32px;border-radius:50%}button.danger{background:#dc2626}button.danger:hover:not(:disabled){background:#991b1b}button.danger:focus-visible{box-shadow:0 0 0 3px #dc26264d}button.sm{height:24px;width:24px}.fab{position:fixed;bottom:20px;right:20px;width:60px;height:60px;background-color:#7c3aed;color:#fff;border-radius:50%;border:none;font-size:30px;cursor:pointer;box-shadow:0 4px 10px #0000004d;display:flex;align-items:center;justify-content:center;transition:background-color .3s,transform .2s}.fab:hover{background-color:#3700b3;transform:scale(1.1)}.fab:active{transform:scale(.95)}table{border-collapse:collapse;width:100%;border:1px solid #ddd}table th,table td{border:1px solid #ddd;padding:4px 8px}table th{background-color:#f9f9f9;text-align:left;font-weight:600}table th:first-child{width:40px;text-align:center}table td:first-child{font-weight:600}table input{padding:4px;border:none;outline:none}table select{padding:4px}form{min-width:300px;width:100%;display:flex;flex-direction:column;gap:12px}form .form-actions{display:flex;gap:8px}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-overlay .modal{background:#fff;padding:24px;border-radius:12px;box-shadow:0 20px 40px #0003;animation:fadeIn .2s ease-in-out;display:flex;flex-direction:column;gap:12px;margin:24px}.modal-overlay .modal .modal-header{display:flex;align-items:center;justify-content:space-between}@keyframes fadeIn{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.dropdown-menu{position:relative;display:inline-block;text-align:left;overflow:visible}.dropdown-menu .dropdown-content{position:absolute;right:0;width:8rem;background:#fff;border-radius:.5rem;box-shadow:0 10px 25px #0000001a;z-index:50;overflow:hidden;display:flex;flex-direction:column}.dropdown-menu .dropdown-content button{width:100%;text-align:left;background:#fff;color:#7c3aed;justify-content:start}.auth-login{height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.auth-login form{width:100%;max-width:400px;padding:24px;border:1px solid;display:flex;flex-direction:column;gap:12px}.layout{height:100vh;display:flex}.layout .sidebar{width:220px;display:flex;flex-direction:column;box-shadow:4px 0 8px -4px #00000026}.layout .sidebar .sidebar-header{height:60px;display:flex;align-items:center;padding-left:16px}.layout .sidebar nav{width:100%;display:flex;flex-direction:column}.layout .sidebar nav a{height:32px;display:flex;align-items:center;gap:8px;padding:0 16px;color:#000000b2}.layout .sidebar nav a.active{color:#fff;background-color:#7c3aed}.layout .layout-body{flex:1;display:flex;flex-direction:column}.layout .layout-body header{height:60px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;box-shadow:0 4px 8px -4px #00000026}.layout .layout-body header .header-menus{display:flex;align-items:center;gap:6px}.layout .layout-body main{flex:1;padding:16px;overflow:scroll}.layout .layout-body main p{font-size:30px}.csv-upload input{display:none}.csv-upload button{background:#4caf50}
