*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;background-color:#f5f7fa}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:400px}.login-card h1{margin:0 0 30px;color:#333;text-align:center;font-size:28px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;color:#555;font-size:14px}.form-group input{padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;color:#c33;padding:12px;border-radius:6px;font-size:14px;border:1px solid #fcc}.login-button{padding:14px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.dashboard-container{min-height:100vh;background-color:#f5f7fa}.dashboard-header{background:linear-gradient(135deg,#ba8223,#764ba2);color:#fff;padding:30px 40px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a}.dashboard-header h1{margin:0;font-size:32px;font-weight:700}.dashboard-header p{margin:5px 0 0;opacity:.9;font-size:16px}.logout-button{padding:10px 24px;background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s}.logout-button:hover{background-color:#ffffff4d}.error-banner{background-color:#fee;color:#c33;padding:16px 40px;border-bottom:1px solid #fcc}.dashboard-content{padding:40px;max-width:1400px;margin:0 auto}.actions-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}.actions-bar h2{margin:0;color:#333;font-size:24px}.filters{display:flex;gap:10px;flex:1;justify-content:center}.filter-btn{padding:8px 20px;background-color:#fff;color:#666;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:#ba8223;color:#ba8223}.filter-btn.active{background:linear-gradient(135deg,#ba8223,#764ba2);color:#fff;border-color:transparent}.create-button{padding:12px 24px;background:linear-gradient(135deg,#ba8223,#764ba2);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.create-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.users-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background-color:#f8f9fa}.users-table th{padding:16px;text-align:left;font-weight:600;color:#555;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.users-table td{padding:16px;border-top:1px solid #eee;color:#333}.users-table tbody tr:hover{background-color:#f8f9fa}.role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.role-badge.admin{background-color:#e3f2fd;color:#1976d2}.role-badge.user{background-color:#f3e5f5;color:#7b1fa2}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-badge.active{background-color:#e8f5e9;color:#2e7d32}.status-badge.inactive{background-color:#ffebee;color:#c62828}.action-buttons{display:flex;gap:8px}.action-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:opacity .2s}.action-btn:hover{opacity:.8}.action-btn.reset{background-color:#ff9800;color:#fff}.action-btn.role{background-color:#2196f3;color:#fff}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;padding:30px;width:90%;max-width:500px;box-shadow:0 10px 40px #0003}.modal-content h2{margin:0 0 24px;color:#333;font-size:24px}.modal-form{display:flex;flex-direction:column;gap:20px}.modal-form .form-group{display:flex;flex-direction:column;gap:8px}.modal-form label{font-weight:500;color:#555;font-size:14px}.modal-form input,.modal-form select{padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s,box-shadow .2s}.modal-form input:focus,.modal-form select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:10px}.cancel-button{padding:10px 20px;background-color:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button:hover{background-color:#eee}.submit-button{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:18px;color:#667eea}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}
