/* =====================================================================
   Dança Carajás Captação — Tema visual oficial (dcx-theme.css)
   Identidade: amarelo #f7c400 + preto #050505 + fundo suave #f5f5f3
   Títulos: Quicksand · Textos: Nunito Sans
   ===================================================================== */

:root {
    --dcx-yellow: #f7c400;
    --dcx-black: #050505;
    --dcx-dark: #111111;
    --dcx-white: #ffffff;
    --dcx-soft: #f5f5f3;
    --dcx-line: #dededb;
    --dcx-muted: #4f4f4f;
    --dcx-text-card: #555555;

    --dcx-font-title: 'Quicksand', sans-serif;
    --dcx-font-body: 'Nunito Sans', sans-serif;
}

/* ----------------------------------------------------------------- */
/* Reset leve                                                        */
/* ----------------------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--dcx-font-body);
    font-size: 18px;
    line-height: 1.68;
    color: var(--dcx-black);
    background: var(--dcx-white);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
}

/* ----------------------------------------------------------------- */
/* Tipografia                                                        */
/* ----------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--dcx-font-title);
    margin: 0 0 .5em;
    font-weight: 900;
}

p {
    margin: 0 0 1rem;
}

.h1-hero {
    font-size: clamp(46px, 7vw, 92px);
    line-height: .95;
    font-weight: 900;
    letter-spacing: -.01em;
}

.h2-section {
    font-size: clamp(34px, 4.2vw, 58px);
    line-height: 1.02;
    font-weight: 900;
}

.h3-card {
    font-size: 25px;
    line-height: 1.16;
    font-weight: 900;
}

.lead {
    font-size: 18px;
    line-height: 1.68;
}

.text-muted-dcx {
    color: var(--dcx-muted);
}

/* ----------------------------------------------------------------- */
/* Layout geral                                                      */
/* ----------------------------------------------------------------- */
.container {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

@media (max-width: 680px) {
    .container {
        width: min(100% - 28px, 1180px);
    }
}

/* ----------------------------------------------------------------- */
/* Seções                                                            */
/* ----------------------------------------------------------------- */
.section {
    padding: 78px 0;
}

.section-soft {
    background: var(--dcx-soft);
}

.section-dark {
    background: var(--dcx-dark);
    color: var(--dcx-white);
}

@media (max-width: 680px) {
    .section {
        padding: 54px 0;
    }
}

/* ----------------------------------------------------------------- */
/* Hero                                                              */
/* ----------------------------------------------------------------- */
.hero {
    min-height: 620px;
    display: flex;
    align-items: flex-end;
    padding: 150px 0 78px;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .72), rgba(0, 0, 0, .34)),
        radial-gradient(circle at 75% 25%, rgba(247, 196, 0, .28), transparent 55%),
        var(--dcx-black);
    background-size: cover;
    background-position: center;
    color: #fff;
}

.hero .hero-inner {
    max-width: 820px;
}

@media (max-width: 680px) {
    .hero {
        min-height: 560px;
        padding: 132px 0 56px;
    }
}

/* ----------------------------------------------------------------- */
/* Kicker                                                            */
/* ----------------------------------------------------------------- */
.kicker {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 999px;
    padding: 9px 14px;
    font-family: var(--dcx-font-title);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .04em;
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

/* Variante para fundos claros */
.kicker-dark {
    border-color: rgba(5, 5, 5, .18);
    background: rgba(5, 5, 5, .04);
    color: var(--dcx-black);
}

/* ----------------------------------------------------------------- */
/* Botões                                                            */
/* ----------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 14px 20px;
    border-radius: 999px;
    border: 1px solid var(--dcx-black);
    background: var(--dcx-black);
    color: #fff;
    font-family: var(--dcx-font-title);
    font-weight: 900;
    font-size: 15px;
    text-decoration: none;
    cursor: pointer;
    transition: transform .12s ease, opacity .12s ease, box-shadow .12s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
}

.btn:active {
    transform: translateY(0);
}

.btn-yellow {
    background: var(--dcx-yellow);
    border-color: var(--dcx-yellow);
    color: #000;
}

.btn-light {
    background: #fff;
    border-color: #fff;
    color: #000;
}

.btn-ghost {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, .75);
}

/* ----------------------------------------------------------------- */
/* Cards                                                             */
/* ----------------------------------------------------------------- */
.card {
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    padding: 26px;
    min-height: 150px;
}

.card h3 {
    font-family: var(--dcx-font-title);
    font-size: 24px;
    line-height: 1.16;
    font-weight: 900;
    margin-top: 0;
}

.card p {
    font-size: 16px;
    line-height: 1.5;
    color: var(--dcx-text-card);
    margin-bottom: 0;
}

/* Detalhe de marca opcional para cards */
.card-accent {
    border-top: 4px solid var(--dcx-yellow);
}

/* ----------------------------------------------------------------- */
/* Grid                                                              */
/* ----------------------------------------------------------------- */
.grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

@media (max-width: 980px) {
    .grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .grid {
        grid-template-columns: 1fr;
    }
}

/* ----------------------------------------------------------------- */
/* Formulários                                                       */
/* ----------------------------------------------------------------- */
.form-box {
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    padding: 28px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.form-grid > br {
    display: none !important;
}

@media (max-width: 680px) {
    .form-grid {
        grid-template-columns: 1fr;
    }
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #cfcfca;
    border-radius: 6px;
    padding: 13px 14px;
    font: inherit;
    color: #111;
    background: #fff;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--dcx-yellow);
    box-shadow: 0 0 0 3px rgba(247, 196, 0, .25);
}

label {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    margin-bottom: 6px;
    display: inline-block;
}

/* ----------------------------------------------------------------- */
/* Avisos institucionais                                             */
/* ----------------------------------------------------------------- */
.notice {
    border-left: 6px solid var(--dcx-yellow);
    background: #fff;
    padding: 28px;
    border-radius: 0 8px 8px 0;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
}

.notice h3 {
    margin-top: 0;
}

.notice p {
    margin-bottom: 0;
    color: var(--dcx-muted);
}

/* ----------------------------------------------------------------- */
/* Tabelas                                                           */
/* ----------------------------------------------------------------- */
.table-wrap {
    overflow: auto;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    background: #fff;
}

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

th {
    background: #101010;
    color: #fff;
    font-family: var(--dcx-font-title);
    font-weight: 900;
    text-align: left;
}

td,
th {
    padding: 18px 16px;
    border-bottom: 1px solid var(--dcx-line);
    font-size: 16px;
}

tr:last-child td {
    border-bottom: none;
}

/* ----------------------------------------------------------------- */
/* Topbar / Footer do layout administrativo                          */
/* ----------------------------------------------------------------- */
.dcx-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--dcx-black);
    color: #fff;
    border-bottom: 3px solid var(--dcx-yellow);
}

.dcx-topbar .topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 68px;
    gap: 16px;
}

.dcx-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--dcx-font-title);
    font-weight: 900;
    font-size: 20px;
    letter-spacing: .01em;
    text-decoration: none;
    color: #fff;
}

.dcx-brand .brand-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--dcx-yellow);
    display: inline-block;
}

.dcx-topbar nav a {
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    margin-left: 18px;
}

.dcx-topbar nav a:hover {
    color: #fff;
}

.dcx-nav-toggle {
    display: none;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .4);
    color: #fff;
    width: 44px;
    min-height: 40px;
    border-radius: 8px;
    cursor: pointer;
    padding: 0;
}

@media (max-width: 680px) {
    .dcx-topbar nav {
        display: none;
        width: 100%;
        padding-bottom: 12px;
    }

    .dcx-topbar nav.open {
        display: block;
    }

    .dcx-topbar nav a {
        display: block;
        margin: 8px 0 0;
    }

    .dcx-topbar .topbar-inner {
        flex-wrap: wrap;
    }

    .dcx-nav-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

.dcx-footer {
    background: var(--dcx-dark);
    color: rgba(255, 255, 255, .65);
    font-size: 14px;
    padding: 26px 0;
}

.dcx-footer .footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

/* ----------------------------------------------------------------- */
/* Utilitários                                                       */
/* ----------------------------------------------------------------- */
.stack-sm > * + * { margin-top: 12px; }
.stack-md > * + * { margin-top: 20px; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.items-center { align-items: center; }

.badge-dcx {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 13px;
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    background: var(--dcx-soft);
    color: var(--dcx-black);
}

.badge-ok { background: var(--dcx-yellow); border-color: var(--dcx-yellow); color: #000; }
.badge-off { background: #f3d6d6; border-color: #e7b7b7; color: #7a1f1f; }

/* ----------------------------------------------------------------- */
/* Ícones Lucide                                                     */
/* ----------------------------------------------------------------- */
[data-lucide] {
    width: 1em;
    height: 1em;
    stroke-width: 2.25;
    vertical-align: -.125em;
    flex: none;
}

/* Ícone de marca dentro de um quadrado amarelo */
.dcx-brand .brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--dcx-yellow);
    color: #000;
}

.dcx-brand .brand-icon [data-lucide] {
    width: 18px;
    height: 18px;
}

/* Ícone redondo de destaque para o topo dos cards */
.card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--dcx-soft);
    border: 1px solid var(--dcx-line);
    color: var(--dcx-black);
    margin-bottom: 14px;
}

.card-icon [data-lucide] {
    width: 22px;
    height: 22px;
}

/* Espaço entre ícone e texto dentro dos botões */
.btn [data-lucide] {
    width: 18px;
    height: 18px;
    margin-right: 8px;
}

/* ----------------------------------------------------------------- */
/* Usuário / logout na topbar                                        */
/* ----------------------------------------------------------------- */
.dcx-user {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, .9);
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    margin-left: 18px;
}

.dcx-logout-form {
    display: inline-block;
    margin: 0 0 0 16px;
    padding: 0;
    border: 0;
    background: none;
}

.dcx-logout {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    width: auto;
    border: 1px solid var(--dcx-yellow);
    background: var(--dcx-yellow);
    color: #000;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    padding: 8px 14px;
    border-radius: 999px;
}

.dcx-logout [data-lucide] {
    width: 16px;
    height: 16px;
}

@media (max-width: 680px) {
    .dcx-user,
    .dcx-logout-form {
        display: block;
        margin: 8px 0 0;
    }
}

/* ----------------------------------------------------------------- */
/* Layout de autenticação                                            */
/* ----------------------------------------------------------------- */
.auth-body {
    background:
        linear-gradient(180deg, rgba(5, 5, 5, .92), rgba(17, 17, 17, .92)),
        radial-gradient(circle at 80% 10%, rgba(247, 196, 0, .22), transparent 55%),
        var(--dcx-black);
    min-height: 100vh;
}

.auth-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
}

.auth-card-wrap {
    width: 100%;
    max-width: 440px;
}

.auth-brand {
    color: #fff;
    margin: 0 auto 18px;
    justify-content: center;
    width: 100%;
    font-size: 18px;
}

.auth-box {
    padding: 30px 28px;
}

.auth-title {
    margin: 14px 0 8px;
}

.auth-text {
    font-size: 15px;
    line-height: 1.5;
    margin-bottom: 18px;
}

.auth-links {
    margin-top: 16px;
    text-align: center;
}

.auth-links a {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    color: var(--dcx-black);
    text-decoration: none;
    border-bottom: 2px solid var(--dcx-yellow);
    padding-bottom: 1px;
}

.auth-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 18px 0 0;
    color: var(--dcx-muted);
    font-size: 13px;
}

.auth-foot {
    text-align: center;
    color: rgba(255, 255, 255, .55);
    font-size: 13px;
    margin: 18px 0 0;
}

/* ----------------------------------------------------------------- */
/* Alerts                                                            */
/* ----------------------------------------------------------------- */
.alert {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 15px;
    margin-bottom: 16px;
}

.alert [data-lucide] {
    width: 18px;
    height: 18px;
    flex: none;
}

.alert-error {
    background: #fdecec;
    border: 1px solid #f3c0c0;
    color: #8a1f1f;
}

.alert-info {
    background: #fff7da;
    border: 1px solid #f0dd9a;
    color: #6b5600;
}

.alert-success {
    background: #e8f7ec;
    border: 1px solid #b6e3c2;
    color: #1e6b38;
}

.alert-close {
    margin-left: auto;
    width: auto;
    min-height: auto;
    background: transparent;
    border: 0;
    font-size: 20px;
    line-height: 1;
    color: inherit;
    cursor: pointer;
    padding: 0 4px;
}

/* ----------------------------------------------------------------- */
/* Cabeçalho de página administrativa                                */
/* ----------------------------------------------------------------- */
.page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

.page-head .h2-section {
    margin: 0;
}

.page-head .page-sub {
    color: var(--dcx-muted);
    font-size: 15px;
    margin: 6px 0 0;
}

/* Botões menores para ações em tabela/formulário */
.btn-sm {
    min-height: 38px;
    padding: 8px 14px;
    font-size: 13px;
}

.btn-outline {
    background: transparent;
    border-color: var(--dcx-black);
    color: var(--dcx-black);
}

.btn-danger {
    background: #b32424;
    border-color: #b32424;
    color: #fff;
}

.inline-form {
    display: inline-block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

.actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

/* Badges de status de usuário */
.status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
}

.status-active   { background: #e8f7ec; color: #1e6b38; border: 1px solid #b6e3c2; }
.status-inactive { background: #f1f1ef; color: #555;     border: 1px solid #dededb; }
.status-blocked  { background: #fdecec; color: #8a1f1f;  border: 1px solid #f3c0c0; }

/* Pílula simples para perfis/tags */
.pill {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 700;
    font-size: 12px;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--dcx-soft);
    border: 1px solid var(--dcx-line);
    color: var(--dcx-black);
    margin: 2px 4px 2px 0;
}

/* Grid de seleção de permissões/perfis */
.check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
}

@media (max-width: 680px) {
    .check-grid {
        grid-template-columns: 1fr;
    }
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    background: #fff;
}

.check-item input {
    width: auto;
    margin-top: 3px;
}

.check-item .check-label {
    font-family: var(--dcx-font-body);
    font-weight: 700;
    font-size: 14px;
}

.check-item .check-slug {
    display: block;
    font-weight: 400;
    font-size: 12px;
    color: var(--dcx-muted);
    margin-top: 2px;
}

.field-error {
    color: #b32424;
    font-size: 13px;
    margin: 4px 0 0;
}

/* Espaço entre ícone e texto nos links da topbar */
.dcx-topbar nav a [data-lucide] {
    width: 15px;
    height: 15px;
    vertical-align: -.16em;
    margin-right: 4px;
}

/* ----------------------------------------------------------------- */
/* Módulo Empresas (Etapa 4)                                         */
/* ----------------------------------------------------------------- */

/* Título de seção dentro de formulários longos */
.form-section-title {
    font-size: 18px;
    margin: 22px 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--dcx-yellow);
    display: flex;
    align-items: center;
    gap: 8px;
}

.form-section-title:first-child {
    margin-top: 0;
}

.form-section-title [data-lucide] {
    width: 18px;
    height: 18px;
}

/* Caixa de filtros da listagem */
.filter-box {
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    padding: 18px;
    margin-bottom: 18px;
}

.filter-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.filter-grid .filter-q {
    grid-column: span 2;
}

.filter-box label {
    font-size: 13px;
    margin-bottom: 4px;
}

.filter-box input,
.filter-box select {
    padding: 9px 10px;
    font-size: 14px;
}

@media (max-width: 980px) {
    .filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .filter-grid .filter-q { grid-column: span 3; }
}

@media (max-width: 680px) {
    .filter-grid { grid-template-columns: 1fr 1fr; }
    .filter-grid .filter-q { grid-column: span 2; }
}

.filter-flags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--dcx-line);
}

.check-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--dcx-font-title);
    font-weight: 700;
    font-size: 14px;
    margin: 0;
}

.check-inline input {
    width: auto;
    margin: 0;
}

.filter-actions {
    margin-left: auto;
    display: flex;
    gap: 8px;
}

@media (max-width: 680px) {
    .filter-actions { margin-left: 0; width: 100%; }
}

.result-count {
    font-size: 14px;
    color: var(--dcx-muted);
    margin: 0 0 10px;
}

/* Linha arquivada e subtítulo de célula */
.row-archived { background: #fbfbf8; opacity: .82; }

.cell-sub {
    display: block;
    font-size: 13px;
    font-weight: 400;
    color: var(--dcx-muted);
    margin-top: 2px;
}

/* Badge de prioridade (A/B/C/D) */
.badge-priority {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    white-space: nowrap;
}

.badge-priority-A { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-priority-B { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-priority-C { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-priority-D { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }

/* Badge de status */
.badge-status {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    background: var(--dcx-soft);
    color: var(--dcx-black);
    white-space: nowrap;
    margin: 2px 2px 2px 0;
}

.badge-status-prospect        { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-status-em_qualificacao { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-status-prioritario     { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-status-monitoramento   { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-status-sem_aderencia   { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-status-arquivado       { background: #2b2b2b; color: #fff;    border-color: #2b2b2b; }

/* Estado vazio */
.empty-state {
    background: #fff;
    border: 1px dashed var(--dcx-line);
    border-radius: 8px;
    padding: 48px 28px;
    text-align: center;
}

.empty-state .card-icon { margin: 0 auto 14px; }
.empty-state h3 { margin: 0 0 6px; }
.empty-state p { color: var(--dcx-muted); margin: 0; }

/* Paginação */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 22px;
}

.pagination .page-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    text-decoration: none;
    color: var(--dcx-black);
    border: 1px solid var(--dcx-black);
    border-radius: 999px;
    padding: 8px 16px;
}

.pagination .page-link:hover { background: var(--dcx-yellow); border-color: var(--dcx-yellow); }
.pagination .page-link [data-lucide] { width: 15px; height: 15px; }
.pagination .page-info { font-size: 14px; color: var(--dcx-muted); }

/* Grade de detalhes (show) */
.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

@media (max-width: 680px) {
    .detail-grid { grid-template-columns: 1fr; }
}

.detail-grid .card h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    margin-bottom: 14px;
}

.detail-grid .card h3 [data-lucide] { width: 18px; height: 18px; }

/* Lista de metadados (dt/dd) */
.meta-list {
    margin: 0;
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 8px 16px;
}

.meta-list dt {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    color: var(--dcx-black);
}

.meta-list dd {
    margin: 0;
    font-size: 15px;
    color: var(--dcx-text-card);
    word-break: break-word;
}

.meta-list-inline {
    grid-template-columns: repeat(4, max-content);
    gap: 6px 14px;
}

@media (max-width: 680px) {
    .meta-list-inline { grid-template-columns: max-content 1fr; }
}

.meta-audit { background: var(--dcx-soft); }

.restore-status {
    width: auto;
    min-width: 200px;
    padding: 10px 12px;
}

.link-strong {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid var(--dcx-yellow);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.link-strong [data-lucide] { width: 16px; height: 16px; }

/* ----------------------------------------------------------------- */
/* Módulo Contatos (Etapa 5)                                         */
/* ----------------------------------------------------------------- */

/* Badge de nível de decisão */
.badge-decision {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    background: var(--dcx-soft);
    color: var(--dcx-black);
    white-space: nowrap;
}

.badge-decision-decisor_final { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-decision-influenciador { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-decision-intermediario { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-decision-tecnico       { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-decision-operacional   { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-decision-nao_informado { background: #f7f7f5; color: #777;    border-color: #e4e4e0; }

/* Badge de influência */
.badge-influence {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    white-space: nowrap;
}

.badge-influence-alta         { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-influence-media        { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-influence-baixa        { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-influence-desconhecida { background: #f7f7f5; color: #777;    border-color: #e4e4e0; }

/* Status adicionais de contato (reaproveita .badge-status) */
.badge-status-ativo              { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-status-em_aproximacao     { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-status-respondeu          { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-status-aguardando_retorno { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-status-sem_retorno        { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-status-substituido        { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-status-inativo            { background: #f1f1ef; color: #555;    border-color: #dededb; }

/* Data de próximo contato vencida */
.overdue {
    color: #8a1f1f;
    font-weight: 800;
}

/* Cartão de contato (uso futuro/listas compactas) */
.contact-card {
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    padding: 16px 18px;
}

/* Bloco de contatos dentro da empresa */
.company-contacts .page-head { align-items: center; }
.company-contact-list { margin-top: 12px; }

/* Aviso com tom de atenção (empresa arquivada) */
.notice-warn { border-left-color: #e0a800; }
.notice-warn p { color: #6b5600; }

/* Placeholder de timeline / próximos vínculos */
.timeline-placeholder { border-left-color: var(--dcx-yellow); }

/* Linha de ações rápidas */
.quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

/* ----------------------------------------------------------------- */
/* Módulo Oportunidades / CRM de Captação (Etapa 6)                  */
/* ----------------------------------------------------------------- */

/* Utilitários de formulário */
.form-grid .col-span-2 { grid-column: span 2; }
@media (max-width: 720px) { .form-grid .col-span-2 { grid-column: auto; } }

.field-hint {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #8a8a82;
}

/* Valor monetário */
.money-value {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    color: var(--dcx-black);
    white-space: nowrap;
}

/* Badge de probabilidade */
.badge-probability {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    white-space: nowrap;
}
.badge-probability-low  { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-probability-mid  { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-probability-high { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-probability-top  { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }

/* Badge de urgência */
.badge-urgency {
    display: inline-block;
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--dcx-line);
    white-space: nowrap;
}
.badge-urgency-baixa   { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-urgency-normal  { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-urgency-alta    { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-urgency-critica { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }

/* Status de oportunidade (cores-chave; demais herdam .badge-status) */
.badge-status-fechado         { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-status-perdido         { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-status-negociacao      { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-status-reserva_de_cota { background: #eaf7ef; color: #1e6b38; border-color: #b6e3c2; }
.badge-status-retomar_depois  { background: #f1f1ef; color: #555;    border-color: #dededb; }

/* Formulário de ação rápida de status */
.quick-status-form { border-left: 4px solid var(--dcx-yellow); }

/* Pipeline (board horizontal com colunas por status) */
.pipeline-board {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    padding-bottom: 14px;
    align-items: flex-start;
}
.pipeline-column {
    flex: 0 0 280px;
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 10px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pipeline-column-head {
    border-bottom: 2px solid var(--dcx-black);
    padding-bottom: 8px;
}
.pipeline-column-title {
    font-family: var(--dcx-font-title);
    font-weight: 800;
    font-size: 14px;
    margin: 0 0 6px;
    color: var(--dcx-black);
}
.pipeline-column-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 12px;
}
.pipeline-empty {
    font-size: 13px;
    color: #9a9a92;
    margin: 4px 0;
}
.pipeline-card {
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: var(--dcx-soft);
    border: 1px solid var(--dcx-line);
    border-radius: 8px;
    padding: 10px 12px;
    text-decoration: none;
    color: var(--dcx-text-card);
    transition: border-color .15s ease, transform .15s ease;
}
.pipeline-card:hover { border-color: var(--dcx-yellow); transform: translateY(-1px); }
.pipeline-card-title { color: var(--dcx-black); font-size: 14px; }
.pipeline-card-company,
.pipeline-card-contact,
.pipeline-card-foot,
.pipeline-card-owner {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: #6a6a62;
}
.pipeline-card-company [data-lucide],
.pipeline-card-contact [data-lucide],
.pipeline-card-foot [data-lucide] { width: 14px; height: 14px; }
.pipeline-card-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
}
.pipeline-card-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
}
.pipeline-more {
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--dcx-black);
    text-decoration: underline;
    padding: 4px;
}

/* Métricas / grids de resumo */
.summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}
.metric-card {
    background: #fff;
    border: 1px solid var(--dcx-line);
    border-radius: 10px;
    padding: 16px 18px;
}
.status-flow { display: flex; flex-wrap: wrap; gap: 6px; }
.metric-num { display: block; font-size: 26px; font-weight: 900; color: var(--dcx-black); line-height: 1.1; }
.metric-num.money-value { font-size: 20px; }
.metric-label { display: block; margin-top: 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #777; }

/* =====================================================================
   Etapa 7 — Cotas de Patrocínio
   ===================================================================== */

/* Badge da cota (reaproveita visual de pílula) */
.badge-quota {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: #fff7da;
    color: #6b5600;
    border: 1px solid #f0dd9a;
    white-space: nowrap;
}
.badge-quota-disponivel                   { background: #e8f7ec; color: #1e6b38; border-color: #b6e3c2; }
.badge-quota-em_negociacao                { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-quota-reservada                    { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-quota-fechada                      { background: #050505; color: #f7c400; border-color: #050505; }
.badge-quota-suspensa                     { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-quota-ajustada_apos_dados_oficiais { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-quota-arquivada                    { background: #2b2b2b; color: #fff;    border-color: #2b2b2b; }

.quota-legacy { color: #888; font-style: italic; font-size: 13px; }
.quota-flex   { color: #6b5600; font-weight: 700; }

.quota-card { border-top: 4px solid var(--dcx-yellow); }
.quota-summary { border-left: 4px solid var(--dcx-yellow); }

/* Estoque de quantidades */
.quota-stock {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 12px;
    margin: 6px 0 10px;
}
.quota-stock-item {
    text-align: center;
    background: #faf9f6;
    border: 1px solid var(--dcx-line);
    border-radius: 10px;
    padding: 12px 8px;
}
.quota-stock-num   { display: block; font-size: 24px; font-weight: 900; color: var(--dcx-black); }
.quota-stock-label { display: block; margin-top: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #777; }

.remaining-quantity { display: inline-block; font-size: 22px; font-weight: 900; color: #1e6b38; }
.remaining-negative { color: #8a1f1f; }

.quota-linked-list table { width: 100%; }

.pipeline-card-quota {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: #6b5600;
    font-weight: 700;
}
.pipeline-card-quota i { width: 14px; height: 14px; }

.quota-status-flow { display: flex; flex-wrap: wrap; gap: 6px; }

/* =====================================================================
   Etapa 8 — Tarefas e Follow-ups
   ===================================================================== */

/* Pill de alerta (ex.: tarefas vencidas) */
.pill-danger { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }

/* Badge de tipo de tarefa */
.badge-task-type {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: #eef3fb;
    color: #2a4b78;
    border: 1px solid #cdddf2;
}

/* Badge de status de tarefa */
.badge-task {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid #dededb;
    background: #f1f1ef;
    color: #444;
    margin-left: 4px;
}
.badge-task-pendente     { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-task-em_andamento { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-task-concluida    { background: #e7f6ec; color: #1f6b3a; border-color: #bfe6cd; }
.badge-task-atrasada,
.badge-task-vencida      { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }
.badge-task-cancelada    { background: #f1f1ef; color: #777;    border-color: #dededb; }
.badge-task-reagendada   { background: #f3eefb; color: #5a3a86; border-color: #ddccf2; }
.badge-task-arquivada    { background: #2b2b2b; color: #fff;    border-color: #2b2b2b; }

/* Prioridades de tarefa */
.badge-priority-baixa   { background: #f1f1ef; color: #555;    border-color: #dededb; }
.badge-priority-normal  { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-priority-alta    { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-priority-critica { background: #fdecec; color: #8a1f1f; border-color: #f3c0c0; }

/* Cartões e listas de tarefa */
.task-card { border: 1px solid #e6e6e1; }
.task-summary { border: 1px solid #e6e6e1; }
.task-linked-list { width: 100%; }

/* Destaque de tarefa vencida / vencendo hoje */
.task-overdue { background: #fff7f7; }
.task-overdue td { border-left: 0; }
tr.task-overdue > td:first-child { box-shadow: inset 3px 0 0 #d34a4a; }
.task-due-today { background: #fffdf2; }
.overdue { color: #b3261e; font-weight: 800; }

.quick-task-actions { border: 1px solid #f0dd9a; background: #fffdf5; }

.empty-inline {
    margin: 6px 0 0;
    color: #777;
    font-style: italic;
}

/* =====================================================================
   Etapa 9 — Leads do Site
   ===================================================================== */
.badge-lead {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid #dededb;
    background: #f1f1ef;
    color: #444;
}
.badge-lead-novo { background: #fff3d6; color: #6b5600; border-color: #f0dd9a; }
.badge-lead-em_triagem { background: #eef3fb; color: #2a4b78; border-color: #cdddf2; }
.badge-lead-convertido_completo,
.badge-lead-convertido_empresa,
.badge-lead-convertido_contato,
.badge-lead-convertido_oportunidade,
.badge-lead-convertido_tarefa { background: #e7f6ec; color: #1f6b3a; border-color: #bfe6cd; }
.badge-lead-duplicado { background: #f3eefb; color: #5a3a86; border-color: #ddccf2; }
.badge-lead-descartado { background: #f1f1ef; color: #777; border-color: #dededb; }
.badge-lead-arquivado { background: #2b2b2b; color: #fff; border-color: #2b2b2b; }

.lead-card { border: 1px solid #e6e6e1; }
.lead-source { font-size: 13px; color: #555; word-break: break-word; }
.lead-payload pre { background: #fafaf8; border: 1px solid #e6e6e1; border-radius: 8px; padding: 12px; }
.conversion-box .conversion-step { margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid #ecece8; }
.conversion-step:last-of-type { border-bottom: 0; }
.integration-status { font-size: 13px; color: #0e7a56; font-weight: 700; }

/* =====================================================================
   Etapa 9B — Instalador web
   ===================================================================== */
.install-shell { max-width: 820px; }
.install-card-wrap { width: 100%; }
.install-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 8px;
    justify-content: center;
}
.install-step {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid #e6e6e1;
    background: #fff;
    font-size: 12px;
    color: #666;
}
.install-step.is-active { border-color: #f7c400; background: #fff9e6; color: #050505; font-weight: 700; }
.install-step.is-done { border-color: #bfe6cd; background: #e7f6ec; color: #1f6b3a; }
.install-step-num {
    width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #050505; color: #f7c400; font-weight: 800; font-size: 11px;
}
.install-step.is-done .install-step-num { background: #1f6b3a; color: #fff; }
.install-section .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.install-section .col-span-2 { grid-column: span 2; }
.conversion-summary { display: grid; grid-template-columns: 180px 1fr; gap: 8px 16px; }
.conversion-summary dt { font-weight: 700; color: #333; }
.conversion-summary dd { margin: 0; word-break: break-word; }
.text-sm { font-size: 13px; }
.text-muted { color: #666; }
.field-error { color: #b42318; font-size: 13px; margin: 4px 0 0; }
