/*
==================================================================
RESET
==================================================================
*/

*,
*::before,
*::after{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    background:#f5f7fa;

    color:#212529;

    font-family:
        "Segoe UI",
        Tahoma,
        Geneva,
        Verdana,
        sans-serif;

    font-size:14px;

    line-height:1.5;

    overflow-x:hidden;

}

/*
==================================================================
VARIÁVEIS
==================================================================
*/

:root{

    --primary:#0d6efd;
    --success:#198754;
    --danger:#dc3545;
    --warning:#ffc107;
    --info:#0dcaf0;

    --border:#dee2e6;

    --background:#f5f7fa;

    --card:#ffffff;

    --text:#212529;

    --text-muted:#6c757d;

    --radius:10px;

    --shadow:

        0 2px 8px rgba(0,0,0,.08);

    --transition:

        .20s ease;

}

/*
==================================================================
ELEMENTOS
==================================================================
*/

img{

    display:block;

    max-width:100%;

}

a{

    color:inherit;

    text-decoration:none;

}

button,
input,
select,
textarea{

    outline:none;

}

button:focus,
input:focus,
select:focus,
textarea:focus{

    box-shadow:none;

}

/*
==================================================================
LAYOUT
==================================================================
*/

.container-fluid{

    padding-left:20px;

    padding-right:20px;

}

.row{

    --bs-gutter-x:1rem;

    --bs-gutter-y:1rem;

}
/*
==================================================================
HEADER
==================================================================
*/

header{

    margin-bottom:24px;

}

header h1{

    font-size:1.9rem;

    font-weight:700;

    color:var(--text);

    margin-bottom:4px;

}

header p{

    margin:0;

    color:var(--text-muted);

}

/*
==================================================================
CARDS
==================================================================
*/

.card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.card:hover{

    box-shadow:

        0 6px 16px rgba(0,0,0,.10);

}

.card-header{

    background:#fff;

    border-bottom:1px solid var(--border);

    font-weight:600;

    padding:14px 18px;

}

.card-body{

    padding:18px;

}

/*
==================================================================
TÍTULOS
==================================================================
*/

h1,
h2,
h3,
h4,
h5,
h6{

    margin-bottom:0;

    font-weight:600;

    color:var(--text);

}

/*
==================================================================
TEXTOS
==================================================================
*/

p{

    margin-bottom:8px;

}

strong{

    font-weight:600;

}

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

.btn{

    border-radius:8px;

    transition:var(--transition);

}

.btn:hover{

    transform:translateY(-1px);

}
/*
==================================================================
FORMULÁRIOS
==================================================================
*/

.form-label{

    font-weight:600;

    color:var(--text);

    margin-bottom:6px;

}

.form-control,
.form-select{

    border:1px solid var(--border);

    border-radius:8px;

    transition:var(--transition);

    background:#fff;

    color:var(--text);

}

input.form-control,
select.form-select{

    height:42px;

}

textarea.form-control{

    min-height:180px;

    resize:vertical;

}

.form-control:hover,
.form-select:hover{

    border-color:#c7cdd3;

}

.form-control:focus,
.form-select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 .20rem rgba(13,110,253,.15);

}

.form-control::placeholder{

    color:#9aa0a6;

}

/*
==================================================================
INPUT GROUP
==================================================================
*/

.input-group{

    border-radius:8px;

}

.input-group-text{

    background:#fff;

    border:1px solid var(--border);

    color:var(--text-muted);

}

/*
==================================================================
CHECKBOX / RADIO
==================================================================
*/

.form-check-input{

    cursor:pointer;

}

.form-check-input:checked{

    background-color:var(--primary);

    border-color:var(--primary);

}

.form-check-label{

    cursor:pointer;

}

/*
==================================================================
FILTROS
==================================================================
*/

.filtros{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    align-items:center;

    margin-bottom:20px;

}

.filtro-item{

    display:flex;

    align-items:center;

    gap:8px;

}

/*
==================================================================
ESPAÇAMENTOS
==================================================================
*/

.mb-20{

    margin-bottom:20px;

}

.mt-20{

    margin-top:20px;

}

.gap-10{

    gap:10px;

}

.gap-15{

    gap:15px;

}
/*
==================================================================
TABELAS
==================================================================
*/

.table-responsive{

    width:100%;

    overflow-x:auto;

    overflow-y:hidden;

    border-radius:8px;

}

.table{

    width:100%;

    min-width:1200px;

    margin-bottom:0;

    vertical-align:middle;

    white-space:nowrap;

    border-color:var(--border);

}

.table thead{

    background:#212529;

    color:#fff;

}

.table thead th{

    padding:12px 14px;

    font-size:.85rem;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:.3px;

    vertical-align:middle;

    border-bottom:none;

}

.table tbody td{

    padding:12px 14px;

    vertical-align:middle;

    border-color:var(--border);

}

.table-hover tbody tr{

    transition:var(--transition);

}

.table-hover tbody tr:hover{

    background:#f8f9fa;

}

.table-bordered{

    border:1px solid var(--border);

}

.table>:not(caption)>*>*{

    background:transparent;

}

/*
==================================================================
ALINHAMENTOS
==================================================================
*/

.table .text-center{

    text-align:center;

}

.table .text-end{

    text-align:right;

}

.table .text-start{

    text-align:left;

}

/*
==================================================================
COLUNAS
==================================================================
*/

.table td:first-child,
.table th:first-child{

    padding-left:18px;

}

.table td:last-child,
.table th:last-child{

    padding-right:18px;

}

/*
==================================================================
TABELAS DENTRO DO MODAL
==================================================================
*/

.modal .table-responsive{

    max-height:65vh;

    overflow:auto;

}
/*
==================================================================
BADGES
==================================================================
*/

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:6px;

    padding:6px 10px;

    font-size:.78rem;

    font-weight:600;

    border-radius:20px;

    white-space:nowrap;

}

.badge i{

    font-size:.80rem;

}

/*
==================================================================
STATUS
==================================================================
*/

.badge-success{

    background:#d1e7dd;

    color:#0f5132;

}

.badge-danger{

    background:#f8d7da;

    color:#842029;

}

.badge-warning{

    background:#fff3cd;

    color:#664d03;

}

.badge-primary{

    background:#cfe2ff;

    color:#084298;

}

.badge-secondary{

    background:#e2e3e5;

    color:#41464b;

}

.badge-dark{

    background:#212529;

    color:#ffffff;

}

/*
==================================================================
ÍCONES
==================================================================
*/

.bi{

    vertical-align:middle;

}

.bi-check-circle-fill{

    color:#198754;

}

.bi-camera-fill{

    color:#0d6efd;

}

.bi-x-circle{

    color:#6c757d;

}

/*
==================================================================
STATUS DA LINHA
==================================================================
*/

.status-entregue{

    color:#198754;

    font-weight:600;

}

.status-pendente{

    color:#fd7e14;

    font-weight:600;

}

.status-devolvido{

    color:#dc3545;

    font-weight:600;

}

.status-reentrega{

    color:#0d6efd;

    font-weight:600;

}

.status-parcial{

    color:#ffc107;

    font-weight:600;

}

/*
==================================================================
INDICADORES
==================================================================
*/

.indicador{

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:10px;

}

.indicador:last-child{

    margin-bottom:0;

}

.indicador strong{

    font-weight:600;

}

/*
==================================================================
SEPARADORES
==================================================================
*/

hr{

    margin:24px 0;

    border-color:var(--border);

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

.modal-content{

    border:none;

    border-radius:10px;

    overflow:hidden;

    box-shadow:0 12px 35px rgba(0,0,0,.18);

}

.modal-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    padding:16px 20px;

    border-bottom:1px solid var(--border);

    background:#ffffff;

}

.modal-title{

    font-size:1.1rem;

    font-weight:600;

    color:var(--text);

}

.modal-body{

    padding:20px;

    background:#f8f9fa;

}

.modal-footer{

    padding:14px 20px;

    border-top:1px solid var(--border);

    background:#ffffff;

}

/*
==================================================================
TAMANHO
==================================================================
*/

.modal-dialog{

    max-width:95vw;

    margin:1.5rem auto;

}

.modal-xl{

    max-width:95vw;

}

/*
==================================================================
CARDS INTERNOS
==================================================================
*/

.modal .card{

    margin-bottom:20px;

}

.modal .card:last-child{

    margin-bottom:0;

}

.modal .card-header{

    background:#ffffff;

}

.modal .card-body p{

    margin-bottom:8px;

}

.modal .card-body p:last-child{

    margin-bottom:0;

}

/*
==================================================================
TABELA DO MODAL
==================================================================
*/

.modal .table-responsive{

    width:100%;

    max-height:65vh;

    overflow:auto;

    border:1px solid var(--border);

    border-radius:8px;

    background:#ffffff;

}

.modal .table{

    min-width:1350px;

    margin-bottom:0;

}

/*
==================================================================
SCROLL INTERNO
==================================================================
*/

.modal-body{

    max-height:80vh;

    overflow-y:auto;

}
/*
==================================================================
SCROLLBAR
==================================================================
*/

::-webkit-scrollbar{

    width:10px;

    height:10px;

}

::-webkit-scrollbar-track{

    background:#eceff3;

    border-radius:8px;

}

::-webkit-scrollbar-thumb{

    background:#b8c2cc;

    border-radius:8px;

    transition:.2s;

}

::-webkit-scrollbar-thumb:hover{

    background:#8f9aa5;

}

/*
==================================================================
TABELAS GRANDES
==================================================================
*/

.table-responsive{

    scrollbar-width:thin;

    scrollbar-color:#b8c2cc #eceff3;

}

.table td{

    white-space:nowrap;

}

.table td.text-wrap{

    white-space:normal;

}

.table th{

    user-select:none;

}

.table tbody tr{

    transition:background .15s ease;

}

.table tbody tr:hover{

    background:#f5f7fa;

}

/*
==================================================================
CURSOR
==================================================================
*/

.table tbody tr{

    cursor:default;

}

.table tbody tr.clickable{

    cursor:pointer;

}

/*
==================================================================
ÍCONE DOS BOTÕES
==================================================================
*/

.btn i{

    margin-right:6px;

}

.btn-sm i{

    margin-right:4px;

}

/*
==================================================================
ANIMAÇÕES
==================================================================
*/

.card,
.btn,
.badge,
.table tbody tr{

    transition:

        background .20s ease,

        color .20s ease,

        border-color .20s ease,

        box-shadow .20s ease,

        transform .20s ease;

}

/*
==================================================================
LOADING
==================================================================
*/

.loading{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:40px;

}

.loading i{

    font-size:2rem;

    animation:girar 1s linear infinite;

}

@keyframes girar{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}
/*
==================================================================
RESPONSIVIDADE
==================================================================
*/

@media (max-width:1200px){

    .table{

        min-width:1100px;

    }

    .modal-xl{

        max-width:98vw;

    }

}

@media (max-width:992px){

    .container-fluid{

        padding-left:15px;

        padding-right:15px;

    }

    .card-body{

        padding:15px;

    }

    .table{

        min-width:1000px;

    }

}

@media (max-width:768px){

    h1{

        font-size:1.5rem;

    }

    h2{

        font-size:1.25rem;

    }

    .btn{

        width:100%;

    }

    .modal-dialog{

        max-width:98vw;

        margin:.5rem auto;

    }

    .modal-body{

        padding:15px;

    }

}

@media (max-width:576px){

    body{

        font-size:13px;

    }

    .container-fluid{

        padding-left:10px;

        padding-right:10px;

    }

    .card-header{

        padding:12px 15px;

    }

    .card-body{

        padding:12px;

    }

    .table{

        min-width:900px;

    }

}

/*
==================================================================
UTILITÁRIOS
==================================================================
*/

.d-none{

    display:none !important;

}

.d-flex{

    display:flex !important;

}

.justify-between{

    justify-content:space-between;

}

.align-center{

    align-items:center;

}

.gap-5{

    gap:5px;

}

.gap-10{

    gap:10px;

}

.gap-15{

    gap:15px;

}

.gap-20{

    gap:20px;

}

.w-100{

    width:100%;

}

.h-100{

    height:100%;

}

.text-right{

    text-align:right;

}

.text-left{

    text-align:left;

}

.text-center{

    text-align:center;

}

.fw-bold{

    font-weight:700;

}

.rounded{

    border-radius:8px;

}

.shadow{

    box-shadow:var(--shadow);

}