/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Roboto', sans-serif;
}

/* Classes utilitárias */
.min-h-screen { 
    min-height: 100vh; 
}

.bg-gray-100 { 
    background-color: #f3f4f6; 
}

.bg-white { 
    background-color: #ffffff; 
}

.bg-blue-50 {
    background-color: #eff6ff;
}

.bg-green-50 {
    background-color: #f0fdf4;
}

.bg-blue-500 { 
    background-color: #3b82f6; 
}

.bg-blue-600 { 
    background-color: #2563eb; 
}

.bg-gray-500 { 
    background-color: #6b7280; 
}

.bg-gray-600 { 
    background-color: #4b5563; 
}

.bg-green-500 { 
    background-color: #22c55e; 
}

.bg-green-600 { 
    background-color: #16a34a; 
}

.text-white { 
    color: #ffffff; 
}

.text-gray-600 { 
    color: #4b5563; 
}

.text-gray-700 { 
    color: #374151; 
}

.text-blue-700 {
    color: #1d4ed8;
}

.text-blue-800 {
    color: #1e40af;
}

.text-green-700 {
    color: #15803d;
}

.text-green-800 {
    color: #166534;
}

.text-red-500 {
    color: #ef4444;
}

.text-green-500 {
    color: #22c55e;
}

.text-3xl { 
    font-size: 1.875rem; 
}

.text-xl { 
    font-size: 1.25rem; 
}

.text-sm { 
    font-size: 0.875rem; 
}

.font-roboto { 
    font-family: 'Roboto', sans-serif; 
}

.rounded-lg { 
    border-radius: 0.5rem; 
}

.shadow-lg { 
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); 
}

.p-4 { 
    padding: 1rem; 
}

.p-6 { 
    padding: 1.5rem; 
}

.p-8 {
    padding: 2rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-3 { 
    padding-top: 0.75rem; 
    padding-bottom: 0.75rem; 
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-6 { 
    padding-left: 1.5rem; 
    padding-right: 1.5rem; 
}

.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-4 { 
    margin-bottom: 1rem; 
}

.mb-6 { 
    margin-bottom: 1.5rem; 
}

.mb-8 { 
    margin-bottom: 2rem; 
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-4 { 
    margin-top: 1rem; 
}

.mt-8 { 
    margin-top: 2rem; 
}

/* Flexbox */
.flex { 
    display: flex; 
}

.flex-col { 
    flex-direction: column; 
}

.items-center { 
    align-items: center; 
}

.justify-center { 
    justify-content: center; 
}

.gap-1 {
    gap: 0.25rem;
}

.gap-2 { 
    gap: 0.5rem; 
}

.gap-4 { 
    gap: 1rem; 
}

/* Dimensões */
.w-full { 
    width: 100%; 
}

.w-48 {
    width: 12rem;
}

.w-64 {
    width: 16rem;
}

.max-w-md {
    max-width: 28rem;
}

.max-w-2xl { 
    max-width: 42rem; 
}

/* Texto */
.text-center { 
    text-align: center; 
}

.text-justify {
    text-align: justify;
}

/* Links */
a {
    color: #3b82f6;
    text-decoration: none;
}

a:hover {
    color: #2563eb;
}

/* Formulários */
select, 
input[type="number"] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    background-color: white;
    font-family: 'Roboto', sans-serif;
}

/* Botões */
button {
    border: none;
    cursor: pointer;
    font-family: 'Roboto', sans-serif;
    transition: background-color 0.2s;
}

button:hover.bg-blue-500 {
    background-color: #2563eb;
}

button:hover.bg-gray-500 {
    background-color: #4b5563;
}

button:hover.bg-green-500 {
    background-color: #16a34a;
}

/* Modal/Popup */
.fixed {
    position: fixed;
}

.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.z-50 {
    z-index: 50;
}

.bg-opacity-50 {
    background-color: rgba(0, 0, 0, 0.5);
}