body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f0f8ff;
    color: #333;
}

header {
    background-color: #4a5c70;
    color: #fff;
    text-align: center;
    padding: 1.5em 0; /* Ajuste no padding */
    margin-bottom: 1.5em; /* Ajuste na margem */
}

.logo-cipa {
    max-width: 80%; /* Ajuste na largura para responsividade */
    height: auto;
    margin-bottom: 0.5em; /* Ajuste na margem */
}

main {
    width: 95%; /* Aumenta a largura em telas menores */
    margin: 0 auto;
    padding: 0.5em; /* Reduz o padding em telas menores */
}

.calendar-container {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    overflow: auto; /* Alterado para 'auto' para evitar quebra de layout em telas pequenas */
}

table {
    width: 100%;
    border-collapse: collapse;
}

th, td {
    padding: 0.75em; /* Reduz o padding em telas menores */
    text-align: center;
    border-bottom: 1px solid #ddd;
}

th {
    background-color: #405e7f;
    color: white;
}

th[colspan] {
    background-color: #285d34;
}

tr:nth-child(even) {
    background-color: #f9f9f9;
}

.local-row th {
    background-color: #28a745;
}

.event-container {
    padding: 0.5em; /* Reduz o padding em telas menores */
}

.event-time {
    display: block;
    font-size: 0.8em; /* Reduz o tamanho da fonte em telas menores */
    color: #777;
    margin-top: 0.25em; /* Reduz a margem em telas menores */
}

.focal-points {
    text-align: left;
}

.focal-points ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.focal-points li::before {
    content: "\2022";
    color: #070a0d;
    display: inline-block;
    width: 1em;
    margin-left: -1em;
}

.icon {
    margin-right: 0.25em; /* Reduz a margem em telas menores */
}

.segunda, .terca, .quarta, .quinta, .sexta {
    background-color: #2f4692;
    color: white;
}

.event-box {
    background-color: #f0f0f0;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.5em; /* Reduz o padding em telas menores */
    margin-bottom: 0.25em; /* Reduz a margem em telas menores */
}

.online-event {
    background-color: #d1ecf1;
    border-color: #bee5eb;
    color: #0c5460;
}

.physical-event {
    background-color: #e9ecef;
    border-color: #ced4da;
    color: #495057;
}

footer {
    text-align: center;
    padding: 0.75em 0; /* Reduz o padding em telas menores */
    background-color: #f0f0f0;
    margin-top: 1.5em; /* Reduz a margem em telas menores */
}

/* Media Queries para Responsividade */

/* Para telas menores que 768px (celulares em modo retrato) */
@media (max-width: 768px) {
    header {
        padding: 1em 0;
    }

    main {
        width: 98%;
    }

    th, td {
        padding: 0.5em;
        font-size: 0.85em; /* Reduz o tamanho da fonte em telas menores */
    }

    .calendar-container {
        overflow-x: auto; /* Adiciona barra de rolagem horizontal se a tabela for muito larga */
    }

    .focal-points {
        text-align: center; /* Centraliza o texto em telas menores */
    }
}

/* Para telas ainda menores, como alguns celulares */
@media (max-width: 480px) {
    header {
        font-size: 0.9em; /* Reduz ainda mais o tamanho da fonte no cabeçalho */
    }

    .logo-cipa {
        max-width: 70%;
    }

    th, td {
        font-size: 0.75em; /* Reduz ainda mais o tamanho da fonte na tabela */
    }
}
