:root {
    --cor-primaria: #4f46e5;
    --cor-primaria-escura: #4338ca;
    --cor-fundo: #f4f5f9;
    --cor-painel: #ffffff;
    --cor-texto: #1f2333;
    --cor-texto-suave: #6b7080;
    --cor-borda: #e4e6ef;

    --cor-aberto: #2563eb;
    --cor-aberto-bg: #dbeafe;
    --cor-suspenso: #d97706;
    --cor-suspenso-bg: #fef3c7;
    --cor-encerrado: #16a34a;
    --cor-encerrado-bg: #dcfce7;

    --raio: 10px;
    --sombra: 0 1px 3px rgba(20, 20, 43, 0.08), 0 1px 2px rgba(20, 20, 43, 0.06);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--cor-fundo);
    color: var(--cor-texto);
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Topbar */
.topbar {
    background: var(--cor-painel);
    border-bottom: 1px solid var(--cor-borda);
}
.topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
}
.logo {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cor-texto);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
}
.logo-img { height: 34px; width: auto; }

.link-admin {
    color: var(--cor-texto-suave);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 8px 4px;
}
.link-admin:hover { color: var(--cor-primaria); }

.topbar-acoes {
    display: flex;
    align-items: center;
    gap: 18px;
}

.usuario-info {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
}
.usuario-nome { font-weight: 600; }
.usuario-papel {
    background: #eef0fb;
    color: var(--cor-primaria);
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    text-transform: uppercase;
    font-weight: 700;
}
.link-sair {
    color: var(--cor-texto-suave);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
}
.link-sair:hover { color: #b91c1c; }

/* Páginas de autenticação (login / registro) */
.pagina-auth {
    background: linear-gradient(135deg, #4f46e5 0%, #4338ca 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}
.auth-wrapper {
    width: 100%;
    max-width: 420px;
    padding: 20px;
}
.auth-card {
    background: #fff;
    border-radius: 14px;
    padding: 36px 32px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
}
.auth-logo-img { display: block; height: 70px; width: auto; margin: 0 auto 12px; }
.auth-logo { margin: 0 0 4px; font-size: 1.3rem; text-align: center; }
.auth-subtitulo {
    text-align: center;
    color: var(--cor-texto-suave);
    font-size: 0.88rem;
    margin-bottom: 20px;
}
.auth-rodape {
    text-align: center;
    font-size: 0.85rem;
    color: var(--cor-texto-suave);
    margin-top: 16px;
}
.auth-rodape a { color: var(--cor-primaria); font-weight: 600; text-decoration: none; }

/* Exportação */
.acoes-exportar {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Painel de administração */
.select-compacto {
    padding: 6px 8px;
    border-radius: 6px;
    border: 1px solid var(--cor-borda);
    font-size: 0.82rem;
}
.tag-voce {
    color: var(--cor-texto-suave);
    font-weight: 400;
    font-size: 0.78rem;
}
.btn-pequeno {
    padding: 6px 12px;
    font-size: 0.78rem;
}
.col-acoes {
    display: flex;
    gap: 8px;
    align-items: center;
}
button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.conteudo { padding: 30px 20px 60px; }

.rodape {
    padding: 20px 0;
    text-align: center;
    color: var(--cor-texto-suave);
    font-size: 0.85rem;
}

/* Botões */
.btn {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: 0.15s ease;
}
.btn-primario { background: var(--cor-primaria); color: #fff; }
.btn-primario:hover { background: var(--cor-primaria-escura); }
.btn-secundario { background: #eef0fb; color: var(--cor-primaria); }
.btn-secundario:hover { background: #e0e3f8; }
.btn-cancelar { background: transparent; color: var(--cor-texto-suave); border: 1px solid var(--cor-borda); }
.btn-perigo { background: #fee2e2; color: #b91c1c; }
.btn-perigo:hover { background: #fecaca; }
.btn-full { width: 100%; margin-top: 8px; }

/* Cabeçalho de página */
.cabecalho-pagina {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 10px;
}
.cabecalho-pagina h1 { margin: 0; font-size: 1.5rem; display: flex; align-items: center; gap: 10px; }
.link-voltar { color: var(--cor-primaria); text-decoration: none; font-size: 0.9rem; font-weight: 600; }

/* Flash messages */
.flash-wrapper { margin-bottom: 18px; }
.flash {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 8px;
    font-size: 0.9rem;
}
.flash-sucesso { background: var(--cor-encerrado-bg); color: #166534; }
.flash-erro { background: #fee2e2; color: #b91c1c; }
.flash-aviso { background: var(--cor-suspenso-bg); color: #92400e; }

/* Cards de resumo */
.resumo-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}
.card-resumo {
    background: var(--cor-painel);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 16px;
    text-align: center;
    text-decoration: none;
    color: var(--cor-texto);
    box-shadow: var(--sombra);
    transition: 0.15s ease;
}
.card-resumo:hover { transform: translateY(-2px); }
.card-resumo.ativo { border-color: var(--cor-primaria); box-shadow: 0 0 0 2px rgba(79,70,229,0.25); }
.card-resumo .numero { display: block; font-size: 1.6rem; font-weight: 700; }
.card-resumo .rotulo { font-size: 0.85rem; color: var(--cor-texto-suave); }
.card-resumo.aberto .numero { color: var(--cor-aberto); }
.card-resumo.suspenso .numero { color: var(--cor-suspenso); }
.card-resumo.encerrado .numero { color: var(--cor-encerrado); }

/* Busca */
.barra-busca {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}
.barra-busca input[type="text"] {
    flex: 1;
    padding: 10px 14px;
    border-radius: 8px;
    border: 1px solid var(--cor-borda);
    font-size: 0.9rem;
}

/* Tabela */
.tabela-wrapper {
    background: var(--cor-painel);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    overflow: hidden;
    border: 1px solid var(--cor-borda);
}
.tabela { width: 100%; border-collapse: collapse; }
.tabela th, .tabela td {
    padding: 12px 16px;
    text-align: left;
    font-size: 0.88rem;
    border-bottom: 1px solid var(--cor-borda);
}
.tabela th { background: #fafafe; color: var(--cor-texto-suave); font-weight: 600; }
.tabela tbody tr { cursor: pointer; }
.tabela tbody tr:hover { background: #f8f9fd; }
.tabela tbody tr:last-child td { border-bottom: none; }
.titulo-cell { font-weight: 600; }

.vazio {
    text-align: center;
    background: var(--cor-painel);
    border: 1px dashed var(--cor-borda);
    border-radius: var(--raio);
    padding: 50px 20px;
}
.vazio p { color: var(--cor-texto-suave); margin-bottom: 16px; }

/* Badges de status */
.badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    vertical-align: middle;
}
.badge-aberto { background: var(--cor-aberto-bg); color: var(--cor-aberto); }
.badge-suspenso { background: var(--cor-suspenso-bg); color: var(--cor-suspenso); }
.badge-encerrado { background: var(--cor-encerrado-bg); color: var(--cor-encerrado); }

/* Pills de prioridade */
.pill { padding: 3px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; }
.pill-baixa { background: #e0f2fe; color: #0369a1; }
.pill-média { background: #ede9fe; color: #6d28d9; }
.pill-alta { background: #ffedd5; color: #c2410c; }
.pill-urgente { background: #fee2e2; color: #b91c1c; }

/* Etiqueta visual usada para identificar chamados da área de RH
   nas listagens e no detalhe. Mantém o padrão "pill" do projeto. */
.pill-rh {
    background: #fce7f3;
    color: #9d174d;
    border: 1px solid #f9a8d4;
    margin-left: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Formulário */
.formulario, .painel {
    background: var(--cor-painel);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 24px;
    box-shadow: var(--sombra);
    margin-bottom: 20px;
}
.campo { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.linha-dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label { font-weight: 600; font-size: 0.85rem; color: var(--cor-texto-suave); }
input[type="text"], input[type="file"], select, textarea {
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--cor-borda);
    font-size: 0.9rem;
    font-family: inherit;
    background: #fff;
}
textarea { resize: vertical; }
small { color: var(--cor-texto-suave); font-size: 0.78rem; }
.acoes-formulario { display: flex; gap: 10px; margin-top: 10px; }

/* Detalhe do chamado */
.grid-detalhe {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    align-items: start;
}
.painel h2 { margin-top: 0; }
.descricao { white-space: pre-wrap; color: var(--cor-texto); line-height: 1.5; }
.meta-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 16px;
    font-size: 0.88rem;
    color: var(--cor-texto-suave);
}
.meta-info strong { color: var(--cor-texto); }

.lista-anexos { list-style: none; padding: 0; margin: 0 0 16px; }
.lista-anexos li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--cor-borda);
    font-size: 0.88rem;
}
.lista-anexos li:last-child { border-bottom: none; }
.lista-anexos a { color: var(--cor-primaria); text-decoration: none; font-weight: 600; flex: 1; }
.data-anexo { color: var(--cor-texto-suave); font-size: 0.78rem; }
.btn-excluir-anexo {
    background: none; border: none; color: #b91c1c; cursor: pointer; font-size: 0.9rem;
}
.form-inline { margin: 0; }
.form-anexo { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.texto-vazio { color: var(--cor-texto-suave); font-size: 0.88rem; }

.lista-historico { list-style: none; padding: 0; margin: 0; }
.lista-historico li {
    padding: 10px 0;
    border-bottom: 1px solid var(--cor-borda);
    font-size: 0.85rem;
}
.lista-historico li:last-child { border-bottom: none; }
.data-historico { color: var(--cor-texto-suave); display: block; font-size: 0.75rem; margin-bottom: 2px; }
.obs-historico { color: var(--cor-texto-suave); font-style: italic; margin-top: 4px; }

.painel-perigo { border-color: #fca5a5; }
.painel-perigo h3 { color: #b91c1c; }

@media (max-width: 800px) {
    .resumo-cards { grid-template-columns: repeat(2, 1fr); }
    .grid-detalhe { grid-template-columns: 1fr; }
    .linha-dupla, .meta-info { grid-template-columns: 1fr; }
}
