/* ==========================================================
   CADASTROS
========================================================== */

.cadastro{

    display:flex;

    flex-direction:column;

    gap:24px;

}


/* ==========================================================
   CABEÇALHO
========================================================== */

.cadastro-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.cadastro-header h2{

    margin:0;

    font-size:2rem;

    font-weight:700;

}


/* ==========================================================
   TOOLBAR
========================================================== */

.cadastro-toolbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.cadastro-toolbar input{

    flex:1;
    max-width:600px;

    height:44px;

    padding:0 16px;

    border:1px solid #d0d5dd;
    border-radius:10px;

    background:#fff;

    font-size:14px;

    outline:none;

    transition:.2s;

}

.cadastro-toolbar input:focus{

    border-color:#2F5FE3;

    box-shadow:0 0 0 3px rgba(47,95,227,.15);

}


.cadastro-toolbar .btn-primary{

    flex-shrink:0;

}


/* ==========================================================
   TABELA
========================================================== */

.table-card{

    background:#fff;

    border-radius:16px;

    overflow:hidden;

    box-shadow:0 8px 24px rgba(0,0,0,.05);

}

.table-card table{

    width:100%;

    border-collapse:collapse;

}

.table-card thead{

    background:#f7f9fc;

}

.table-card th{

    padding:18px;

    text-align:left;

    font-size:13px;

    color:#667085;

    font-weight:600;

}

.table-card td{

    padding:18px;

    border-top:1px solid #edf2f7;

    font-size:14px;

}

.table-card tbody tr:hover{

    background:#fafcff;

}


/* ==========================================================
   INPUTS
========================================================== */

.campo{

    display:flex;

    flex-direction:column;

    gap:8px;

}

.campo label{

    font-weight:600;

    font-size:14px;

}

.campo input{

    width:100%;

    padding:12px 14px;

    border:1px solid #d0d5dd;

    border-radius:10px;

    outline:none;

    transition:.2s;

}

.campo input:focus{

    border-color:#2F5FE3;

}


/* ==========================================================
   BOTÕES
========================================================== */

.btn-primary{

    background:#2F5FE3;

    color:#fff;

    border:none;

    border-radius:10px;

    padding:12px 22px;

    font-size:14px;

    font-weight:600;

    cursor:pointer;

    transition:.2s;

}

.btn-primary:hover{

    background:#244fc5;

}

.btn-secondary{

    background:#f2f4f7;

    color:#344054;

    border:none;

    border-radius:10px;

    padding:12px 22px;

    cursor:pointer;

}

.btn-secondary:hover{

    background:#e5e7eb;

}

.btn-danger{

    background:#ef4444;

    color:#fff;

    border:none;

    border-radius:10px;

    padding:12px 22px;

    cursor:pointer;

}

.btn-danger:hover{

    background:#dc2626;

}


/* ==========================================================
   AÇÕES
========================================================== */

.acoes{

    display:flex;

    justify-content:center;

    gap:10px;

}

.btn-editar{

    width:34px;

    height:34px;

    border:none;

    border-radius:8px;

    background:#eef4ff;

    cursor:pointer;

    transition:.2s;

}

.btn-editar:hover{

    background:#dbe7ff;

}

.btn-excluir{

    width:34px;

    height:34px;

    border:none;

    border-radius:8px;

    background:#fff1f2;

    cursor:pointer;

    transition:.2s;

}

.btn-excluir:hover{

    background:#ffe4e6;

}


/* ==========================================================
   MODAL
========================================================== */

.modal-header{

    margin-bottom:20px;

}

.modal-header h2{

    margin:0;

}

.modal-body{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.modal-footer{

    display:flex;

    justify-content:flex-end;

    gap:12px;

    margin-top:28px;

}