.content { height: 100vh; display: flex; flex-direction: column; overflow: hidden; padding: 20px 40px; }

/* Cabeçalho Principal */
.header-main { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-shrink: 0; }
.header-main h1 { font-size: 1.8rem; color: #000; margin: 0; font-weight: bold; }

/* Filtros */
.filtros-top-global, .filtros-historico { display: flex; gap: 10px; align-items: center; }
.filtro-pill { 
    background: black; 
    color: white; 
    padding: 6px 15px; 
    border-radius: 20px; 
    font-size: 0.75rem; 
    display: flex; 
    align-items: center; 
    gap: 8px; 
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.filtro-pill label { font-weight: 800; text-transform: uppercase; font-size: 0.65rem; color: white; }
.filtro-pill select { background: transparent; color: white; border: none; font-weight: bold; outline: none; cursor: pointer; font-size: 0.8rem; }
.filtro-pill select option { background: black; color: white; }

/* Ícone de Alerta Pulsante Global (Master) */
.alert-icon-wrapper {
    position: relative;
    cursor: pointer;
    background: #f39c12;
    color: white;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    transition: transform 0.2s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.alert-icon-wrapper.pulsing { animation: pulse-orange 2s infinite; }

@keyframes pulse-orange {
    0% { box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.7); }
    70% { box-shadow: 0 0 0 12px rgba(243, 156, 18, 0); }
    100% { box-shadow: 0 0 0 0 rgba(243, 156, 18, 0); }
}

.badge-vencimento {
    position: absolute;
    top: -5px;
    right: -5px;
    background: #e74c3c;
    color: white;
    font-size: 0.65rem;
    padding: 2px 6px;
    border-radius: 10px;
    font-weight: bold;
    border: 2px solid #fff;
}

/* Formulário */
.form-container { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); flex-shrink: 0; margin-bottom: 20px; }
.row { display: flex; gap: 15px; margin-bottom: 15px; }
.col { flex: 1; display: flex; flex-direction: column; }
.col label { font-size: 0.8rem; font-weight: bold; margin-bottom: 5px; color: #34495e; }
.col input, .col select { padding: 8px; border: 1px solid #ddd; border-radius: 5px; font-size: 0.9rem; height: 38px; }

/* Botões do Formulário */
.btn-group { flex-direction: row !important; align-items: flex-end !important; gap: 10px; display: flex !important; }
.btn-save { background-color: #27ae60 !important; color: white !important; border: none !important; padding: 10px !important; border-radius: 5px !important; cursor: pointer; flex: 2; font-weight: bold; height: 38px; }
.btn-clear { background-color: #95a5a6 !important; color: white !important; border: none !important; padding: 10px !important; border-radius: 5px !important; cursor: pointer; flex: 1; font-weight: bold; height: 38px; }

/* Layout das Colunas de Histórico */
.header-historico { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 15px; flex-shrink: 0; }
.titulo-secao { font-size: 1.3rem; color: #2c3e50; font-weight: 800; margin: 0; }
.colunas-ausencias-wrapper { display: flex; gap: 15px; flex-grow: 1; overflow-x: auto; padding-bottom: 15px; }
.ausencia-col { flex: 1; background: #ebedef; border-radius: 10px; display: flex; flex-direction: column; min-width: 300px; border-top: 5px solid #bdc3c7; }
.titulo-col { padding: 12px; font-size: 0.9rem; text-align: center; text-transform: uppercase; font-weight: bold; background: #f8f9fa; border-bottom: 2px solid #ddd; border-radius: 10px 10px 0 0; }
.titulo-col.folga { color: #2ecc71; border-bottom-color: #2ecc71; }
.titulo-col.falta { color: #e74c3c; border-bottom-color: #e74c3c; }
.titulo-col.ferias { color: #3498db; border-bottom-color: #3498db; }
.titulo-col.outros { color: #e67e22; border-bottom-color: #e67e22; }

/* Cartões de Ausência */
.lista-ausencias { padding: 10px; overflow-y: auto; flex-grow: 1; height: 100%; }
.card-ausencia { background: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 12px; display: flex; flex-direction: column; border: 1px solid #eee; }
.card-header-func { background: #f1f2f6; padding: 8px 12px; font-weight: bold; font-size: 0.9rem; display: flex; justify-content: space-between; align-items: center; border-radius: 8px 8px 0 0; }
.badge-dias { background: #2c3e50; color: white; padding: 2px 8px; border-radius: 12px; font-size: 0.7rem; font-weight: bold; }
.card-body-ausencia { display: flex; padding: 12px; justify-content: space-between; align-items: center; }
.ausencia-info { font-size: 0.82rem; line-height: 1.5; flex: 1; color: #333; font-weight: 500; }
.card-action-column { display: flex; flex-direction: column; gap: 12px; padding-left: 12px; border-left: 1px solid #eee; }

/* Botões Restaurados (Sem borda e coloridos) */
.btn-icon-edit, .btn-icon-delete, .btn-aprovar, .btn-reprovar {
    background: none !important;
    border: none !important;
    cursor: pointer;
    padding: 5px;
    font-size: 1.2rem;
    transition: transform 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.btn-icon-edit { color: #f39c12 !important; } 
.btn-icon-delete { color: #e74c3c !important; } 
.btn-aprovar { color: #27ae60 !important; } 
.btn-reprovar { color: #e74c3c !important; } 
.btn-icon-edit:hover, .btn-icon-delete:hover, .btn-aprovar:hover, .btn-reprovar:hover { transform: scale(1.2); }

/* Badges de Status */
.badge-status-ausencia { padding: 3px 8px; border-radius: 4px; font-size: 0.6rem; font-weight: 800; text-transform: uppercase; color: white; }
.status-pendente { background: #f39c12; }
.status-aprovada { background: #27ae60; }
.status-recusada { background: #e74c3c; }
.status-alt-pendente { background: #e67e22 !important; } 

/* Texto de Justificativa e Solicitação */
.justificativa-texto { display: block; margin-top: 5px; color: #e74c3c; font-size: 0.75rem; font-style: italic; font-weight: bold; }
.solicitacao-texto { display: block; margin-top: 5px; color: #3498db; font-size: 0.75rem; font-style: italic; font-weight: 800; }
.tag-alt-interna { color: #e67e22; font-weight: 900; margin-left: 5px; font-size: 0.7rem; }

/* Botão de Solicitar Alteração (Usuário Comum) */
.btn-request-change {
    background: #f1f2f6;
    color: #2c3e50;
    border: 1px solid #ddd;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 0.65rem;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
}

/* Bloqueio Visual para Usuário Comum */
.user-hidden { display: none !important; }

/* Modal Customizado para o Prompt */
.prompt-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; z-index: 10000; backdrop-filter: blur(2px); }
.prompt-modal { background: white; padding: 25px; border-radius: 12px; width: 90%; max-width: 400px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); text-align: center; }
.prompt-modal h3 { margin-bottom: 15px; font-size: 1rem; color: #2c3e50; }
.prompt-modal input { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 8px; margin-bottom: 20px; outline: none; }
.prompt-btn-group { display: flex; gap: 10px; justify-content: center; }
.prompt-btn-group button { padding: 10px 20px; border-radius: 8px; border: none; cursor: pointer; font-weight: bold; text-transform: uppercase; font-size: 0.8rem; }
.btn-confirm-prompt { background: #27ae60; color: white; }
.btn-cancel-prompt { background: #95a5a6; color: white; }

/* Modais de Alerta Central */
.alerta-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); display: flex; align-items: center; justify-content: center; z-index: 9999; backdrop-filter: blur(4px); }
.alerta-modal { 
    background: white; 
    padding: 30px; 
    border-radius: 15px; 
    text-align: center; 
    width: 90%; 
    max-width: 800px; /* Força a largura para ocupar mais espaço horizontal */
    border-top: 10px solid #e74c3c; 
    box-sizing: border-box;
}
.alerta-modal h2 { color: #2c3e50; margin-bottom: 15px; font-size: 1.8rem; font-weight: 800; }
.alerta-modal p { font-size: 1.1rem; color: #555; margin-bottom: 25px; font-weight: 500; }
.alerta-modal button { border: none; padding: 12px 60px; border-radius: 25px; cursor: pointer; font-weight: bold; text-transform: uppercase; transition: 0.2s; }