/* =====================================================================
   Carteira Tool - estilos complementares ao Bootstrap 5
   ===================================================================== */

:root {
    --app-primaria: #14345c;
    --app-primaria-clara: #1d4a80;
    --app-fundo: #f2f4f8;
    --app-borda: #e3e7ee;
}

body {
    background-color: var(--app-fundo);
    font-size: 0.95rem;
}

/* ------------------------------- Navbar ---------------------------- */

.app-navbar {
    background: linear-gradient(90deg, var(--app-primaria), var(--app-primaria-clara));
    box-shadow: 0 2px 10px rgba(20, 52, 92, .18);
}

.app-navbar .navbar-brand {
    font-weight: 600;
    line-height: 1.1;
}

.app-navbar .navbar-brand small {
    font-size: .68rem;
    letter-spacing: .02em;
}

.app-navbar .nav-link {
    border-radius: .375rem;
    padding-inline: .75rem;
}

.app-navbar .nav-link.active,
.app-navbar .nav-link:hover {
    background-color: rgba(255, 255, 255, .14);
}

/* -------------------------------- Cards ---------------------------- */

.card {
    border: 1px solid var(--app-borda);
    border-radius: .65rem;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.card-header {
    background-color: #fff;
    border-bottom: 1px solid var(--app-borda);
    font-weight: 600;
}

/* Cartao de campanha do dashboard: faixa colorida na lateral */
.card-campanha {
    border-left: 4px solid var(--bs-secondary);
    transition: transform .12s ease, box-shadow .12s ease;
}

.card-campanha:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(16, 24, 40, .10);
}

.icone-campanha {
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: .6rem;
    font-size: 1.2rem;
}

.icone-campanha-sm {
    width: 32px;
    height: 32px;
    border-radius: .45rem;
    font-size: .95rem;
}

/* Cartao-resumo clicavel (filtros do painel de retornos) */
.card-filtro {
    color: inherit;
    transition: transform .12s ease, box-shadow .12s ease;
}

.card-filtro:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(16, 24, 40, .10);
}

.numero-destaque {
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1;
}

/* ------------------------------ Tabelas ---------------------------- */

.table thead th {
    background-color: #f7f9fc;
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #5b6b82;
    white-space: nowrap;
}

.table td {
    vertical-align: middle;
}

.tabela-clientes td.col-tarefa {
    text-align: center;
    white-space: nowrap;
}

/* Botao de status dentro da grade de campanhas */
.btn-tarefa {
    --bs-btn-padding-y: .15rem;
    --bs-btn-padding-x: .45rem;
    --bs-btn-font-size: .75rem;
    min-width: 118px;
}

/* ------------------------------ Diversos --------------------------- */

.badge {
    font-weight: 500;
}

.progress {
    background-color: #e7ebf1;
}

.historico-box {
    background-color: #f8f9fb;
    border: 1px solid var(--app-borda);
    border-radius: .5rem;
    padding: .75rem .9rem;
    max-height: 260px;
    overflow-y: auto;
    white-space: pre-wrap;
    font-size: .85rem;
    line-height: 1.5;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.historico-box:empty::before {
    content: "Nenhum contato registrado ainda.";
    color: #98a2b3;
    font-style: italic;
}

.btn-whats {
    --bs-btn-color: #fff;
    --bs-btn-bg: #25d366;
    --bs-btn-border-color: #25d366;
    --bs-btn-hover-bg: #1fb457;
    --bs-btn-hover-border-color: #1fb457;
    --bs-btn-hover-color: #fff;
    --bs-btn-padding-y: .15rem;
    --bs-btn-padding-x: .4rem;
}

.texto-truncado {
    display: inline-block;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.estado-vazio {
    padding: 3rem 1rem;
    text-align: center;
    color: #667085;
}

.estado-vazio i {
    font-size: 2.5rem;
    opacity: .35;
    display: block;
    margin-bottom: .75rem;
}

@media (max-width: 767.98px) {
    .numero-destaque {
        font-size: 1.6rem;
    }
}

/* --------------------------- Link do SGD --------------------------- */

/* Botao de atalho para a ficha do cliente no Dominio (abre em nova aba) */
.btn-sgd {
    --bs-btn-color: #fff;
    --bs-btn-bg: #0a5c36;
    --bs-btn-border-color: #0a5c36;
    --bs-btn-hover-bg: #084a2b;
    --bs-btn-hover-border-color: #084a2b;
    --bs-btn-hover-color: #fff;
}
