/* Mobile First - Padrão para smartphones */
body { font-size:14px; }
.hero { padding:2rem 0; text-align:center; }
.hero h1 { font-size:1.75rem; }
.hero p { font-size:0.9rem; }
.services-grid { grid-template-columns:1fr; gap:1rem; }
.service-card { padding:1rem; }
.stat-card { padding:1rem; }
.stats-grid { grid-template-columns:1fr; gap:1rem; }
.table-wrapper { overflow-x:auto; font-size:0.85rem; }
th, td { padding:0.5rem; }
.sidebar { width:100%; height:auto; min-height:auto; position:relative; border-right:none; border-bottom:1px solid var(--border); padding:1rem; display:flex; flex-wrap:wrap; }
.sidebar .logo { width:100%; text-align:center; margin-bottom:1rem; }
.sidebar .logo img { width:100px; }
.sidebar a { display:inline-block; padding:0.4rem 0.8rem; margin:0.2rem; font-size:0.875rem; flex:0 1 auto; }
.admin-layout { flex-direction:column; }
.admin-content { padding:1rem; }
.modal { padding:1.5rem; max-width:95%; }
.toast-container { top:10px; right:10px; left:10px; }
.toast { min-width:auto; width:100%; }
.header nav { font-size:0.85rem; }
.header .logo-text h2 { font-size:0.95rem; }

/* Tablet - 768px e acima */
@media (min-width:768px) {
    body { font-size:15px; }
    .container { padding:0 1.5rem; }
    .hero { padding:3rem 0; }
    .hero h1 { font-size:2.5rem; }
    .hero p { font-size:1rem; }
    .services-grid { grid-template-columns:repeat(2,1fr); gap:1.5rem; }
    .service-card { padding:1.25rem; }
    .stat-card { padding:1.5rem; }
    .stats-grid { grid-template-columns:repeat(2,1fr); gap:1rem; }
    .header nav { font-size:0.95rem; gap:1rem; }
    .header .logo-text h2 { font-size:1.15rem; }
    .sidebar { width:200px; height:auto; min-height:auto; padding:1rem 0.5rem; }
    .sidebar a { display:block; padding:0.75rem 1rem; margin:0.25rem 0; width:100%; }
}

/* Desktop - 1024px e acima */
@media (min-width:1024px) {
    body { font-size:16px; }
    .container { padding:0 2rem; }
    .hero { padding:4rem 0; }
    .hero h1 { font-size:3rem; }
    .services-grid { grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:2rem; }
    .service-card { padding:1.5rem; }
    .stat-card { padding:1.5rem; }
    .stats-grid { grid-template-columns:repeat(4,1fr); gap:1.5rem; }
    .header nav { font-size:1rem; gap:1.5rem; }
    .header .logo-text h2 { font-size:1.25rem; }
    .admin-layout { flex-direction:row; }
    .sidebar { width:250px; min-height:100vh; position:sticky; top:0; height:100vh; overflow-y:auto; flex-shrink:0; padding:2rem 1rem; }
    .sidebar a { display:block; }
    .admin-content { padding:2.5rem; }
}