/* =============================================================================================== */
/* Gerenciamento de Tarefas — estilos do sistema                                                  */
/* =============================================================================================== */

:root {
    --cor-primaria: #4f46e5;
    --cor-primaria-escura: #4338ca;
    --cor-primaria-suave: #eef2ff;
    --cor-texto: #0f172a;
    --cor-texto-suave: #64748b;
    --cor-borda: #e2e8f0;
    --cor-fundo: #f1f5f9;
    --cor-superficie: #ffffff;
    --cor-sucesso: #10b981;
    --cor-alerta: #f59e0b;
    --cor-perigo: #ef4444;
    --cor-info: #0ea5e9;
    --cor-menu: #0f172a;
    --cor-menu-hover: #1e293b;
    --raio: 12px;
    --raio-pequeno: 8px;
    --sombra: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);
    --sombra-media: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .06);
    --sombra-alta: 0 12px 24px -6px rgba(15, 23, 42, .18);
    --altura-topo: 64px;
}

html, body {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 14px;
    color: var(--cor-texto);
    background: var(--cor-fundo);
}

body.cor-fundo-cadastros {
    background: var(--cor-fundo);
}

a {
    color: var(--cor-primaria);
}

a:hover {
    color: var(--cor-primaria-escura);
    text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    letter-spacing: -.01em;
}

::selection {
    background: #c7d2fe;
}

/* ---------------------------------------------------------------------------------------------- */
/* Menu lateral                                                                                     */

.layout .sidebar .sidebar-layout {
    background-color: var(--cor-menu);
}

.layout .sidebar {
    color: #94a3b8;
}

.layout .sidebar .sidebar-layout .sidebar-header {
    height: var(--altura-topo);
    min-height: var(--altura-topo);
    border-bottom: 1px solid rgba(148, 163, 184, .12);
}

.layout .sidebar .pro-sidebar-logo > div {
    background: transparent;
    width: 36px;
    min-width: 36px;
    height: 36px;
}

.pro-sidebar-logo > div > img {
    width: 36px !important;
    height: 36px;
}

.layout .sidebar .pro-sidebar-logo > h5 {
    line-height: 1.1;
    margin: 0;
}

.logo-texto {
    color: #fff;
    font-weight: 800;
    font-size: 18px;
}

.logo-empresa {
    color: #94a3b8;
    font-size: 11px;
    font-weight: 500;
    max-width: 170px;
}

.layout .sidebar .menu .menu-header {
    color: #64748b;
    font-size: 10.5px;
    padding: 18px 25px 6px;
}

.layout .sidebar .menu .menu-item a {
    height: 42px;
    color: #94a3b8;
    margin: 1px 10px;
    padding: 0 12px;
    border-radius: var(--raio-pequeno);
}

.layout .sidebar .menu .menu-item a:hover {
    background: var(--cor-menu-hover);
}

.layout .sidebar .menu .menu-item a .menu-icon {
    font-size: 1.15rem;
    width: 28px;
    min-width: 28px;
    margin-right: 8px;
}

.layout .sidebar .menu .menu-item.active > a {
    background: rgba(99, 102, 241, .18);
}

.layout .sidebar .menu .menu-item.active > a .menu-title,
.layout .sidebar .menu .menu-item.active > a .menu-icon {
    color: #fff;
}

.layout .sidebar .menu > ul > .sub-menu > .sub-menu-list {
    background-color: transparent;
    padding-left: 26px;
}

.layout .sidebar.collapsed .menu > ul > .menu-item.sub-menu > .sub-menu-list {
    background-color: var(--cor-menu);
    box-shadow: var(--sombra-alta);
    padding: 6px 0;
}

.layout .sidebar .menu .sub-menu-list .menu-item a {
    height: 36px;
}

.ponto-cor {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 8px;
    vertical-align: middle;
}

.layout .sidebar .sidebar-collapser {
    left: 248px;
    top: 22px;
    background-color: var(--cor-primaria);
    box-shadow: var(--sombra-media);
}

.layout .sidebar.collapsed .sidebar-collapser {
    left: 68px;
}

.sidebar-footer-versao {
    color: #475569;
    font-size: 11px;
    text-align: center;
    padding: 12px;
}

.layout .sidebar.collapsed .sidebar-footer-versao,
.layout .sidebar.collapsed .logo-empresa {
    display: none;
}

/* ---------------------------------------------------------------------------------------------- */
/* Topo                                                                                             */

.topo {
    position: sticky;
    top: 0;
    z-index: 100;
    height: var(--altura-topo);
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 24px;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(8px);
    border-bottom: 1px solid var(--cor-borda);
}

.topo .sidebar-toggler {
    position: static;
    color: var(--cor-texto);
}

.topo-busca {
    position: relative;
    flex: 1;
    max-width: 520px;
    margin: 0;
}

.topo-busca i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cor-texto-suave);
}

.topo-busca input {
    width: 100%;
    height: 38px;
    border: 1px solid var(--cor-borda);
    border-radius: 999px;
    padding: 0 16px 0 36px;
    background: var(--cor-fundo);
    outline: none;
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.topo-busca input:focus {
    background: #fff;
    border-color: #a5b4fc;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .15);
}

.topo-acoes {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.topo-icone {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    color: var(--cor-texto);
    font-size: 20px;
}

.topo-icone:hover {
    background: var(--cor-fundo);
    color: var(--cor-texto);
}

.topo-contador {
    position: absolute;
    top: 2px;
    right: 0;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--cor-perigo);
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    border: 2px solid #fff;
}

.topo-usuario {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--cor-texto);
    font-weight: 600;
}

.topo-usuario:hover {
    color: var(--cor-texto);
}

.topo-cronometro {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fef2f2;
    color: #b91c1c;
    font-weight: 600;
    font-size: 13px;
}

.topo-cronometro:hover {
    color: #991b1b;
    background: #fee2e2;
}

.cronometro-pulso {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--cor-perigo);
    animation: pulso 1.4s infinite;
}

.cronometro-tempo {
    font-variant-numeric: tabular-nums;
}

@keyframes pulso {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .6); }
    70% { box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

main.content {
    padding: 20px 24px 40px !important;
}

/* Notificações */

.dropdown-notificacoes {
    width: 380px;
    max-width: 92vw;
    padding: 0;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra-alta);
    overflow: hidden;
}

.dropdown-notificacoes-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--cor-borda);
    font-size: 13px;
}

.dropdown-notificacoes-lista {
    max-height: 420px;
    overflow-y: auto;
}

.dropdown-notificacoes-rodape {
    display: block;
    text-align: center;
    padding: 10px;
    border-top: 1px solid var(--cor-borda);
    font-weight: 600;
    font-size: 13px;
}

.notificacao-item {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    color: var(--cor-texto);
    border-bottom: 1px solid #f1f5f9;
}

.notificacao-item:hover {
    background: #f8fafc;
    color: var(--cor-texto);
}

.notificacao-item.nao-lida {
    background: var(--cor-primaria-suave);
}

.notificacao-icone {
    flex: 0 0 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e0e7ff;
    color: var(--cor-primaria);
    font-size: 16px;
}

.notificacao-texto {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.notificacao-texto strong {
    font-size: 13px;
    font-weight: 600;
}

.notificacao-texto small {
    color: var(--cor-texto-suave);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.notificacao-texto em {
    color: #94a3b8;
    font-size: 11px;
    font-style: normal;
}

.notificacao-vazia {
    text-align: center;
    padding: 32px 16px;
    color: var(--cor-texto-suave);
}

.notificacao-vazia i {
    font-size: 32px;
    color: #cbd5e1;
}

/* ---------------------------------------------------------------------------------------------- */
/* Componentes                                                                                      */

.avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
    letter-spacing: .02em;
}

.avatar-sm {
    width: 24px;
    height: 24px;
    font-size: 10px;
}

.avatar-lg {
    width: 44px;
    height: 44px;
    font-size: 15px;
}

/* Avatar editável (Meu perfil): ao passar o mouse aparece a ação de alterar a foto */
.avatar-editavel {
    position: relative;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
}

.avatar-editavel .avatar {
    width: 88px;
    height: 88px;
    font-size: 28px;
}

.avatar-editavel input[type=file] {
    display: none;
}

.avatar-editavel-acao {
    position: absolute;
    inset: 0;
    margin: 0;
    border-radius: 50%;
    background: rgba(15, 23, 42, .55);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    cursor: pointer;
    transition: opacity .15s;
}

.avatar-editavel-acao i {
    font-size: 22px;
    line-height: 1;
}

.avatar-editavel-acao small {
    font-size: 11px;
    font-weight: 600;
}

.avatar-editavel:hover .avatar-editavel-acao,
.avatar-editavel:focus-within .avatar-editavel-acao {
    opacity: 1;
}

.avatar-editavel-remover {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #ef4444;
    color: #fff;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s;
}

.avatar-editavel-remover[hidden] {
    display: none;
}

.avatar-editavel:hover .avatar-editavel-remover,
.avatar-editavel:focus-within .avatar-editavel-remover {
    opacity: 1;
}

.avatar-grupo {
    display: inline-flex;
}

.avatar-grupo .avatar {
    border: 2px solid #fff;
    margin-left: -8px;
}

.avatar-grupo .avatar:first-child {
    margin-left: 0;
}

.breadcrumb {
    background: transparent;
    padding: 0;
    margin-bottom: 16px;
    font-size: 13px;
}

.breadcrumb-item.active {
    color: var(--cor-texto);
    font-weight: 600;
}

.titulo-pagina {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}

.titulo-pagina h1 {
    font-size: 22px;
    margin: 0;
}

.titulo-pagina p {
    color: var(--cor-texto-suave);
    margin: 2px 0 0;
}

.card {
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
}

.card.shadow {
    box-shadow: var(--sombra) !important;
}

.card-header {
    background: #fff;
    border-bottom: 1px solid var(--cor-borda);
    border-radius: var(--raio) var(--raio) 0 0 !important;
}

/* Card recolhido (ou só com cabeçalho): o cabeçalho é o card inteiro, então arredonda os 4 cantos e tira a linha de baixo */
.card-header:last-child,
.card-header:has(+ .collapse:not(.show)) {
    border-radius: var(--raio) !important;
    border-bottom-color: transparent;
}

.accordion > .card > .card-header {
    margin-bottom: 0;
}

.dropdown-menu,
.modal-content {
    border-radius: var(--raio);
}

.alert {
    border-radius: var(--raio-pequeno);
}

.card-header .btn-link {
    color: var(--cor-texto);
    font-weight: 600;
    text-decoration: none;
    padding-left: 0;
}

.card-header .btn-link:hover,
.card-header .btn-link:focus {
    text-decoration: none;
    box-shadow: none;
}

.accordion .card-header .btn-link::after {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    float: right;
    transition: transform .2s;
}

.accordion .card-header .btn-link.collapsed::after {
    transform: rotate(-90deg);
}

.accordion > .card {
    overflow: visible;
}

/* o Bootstrap zera os cantos conforme a posição (first/last-of-type); aqui todo card mantém os 4 cantos arredondados */
.accordion .card {
    border-radius: var(--raio) !important;
    border-bottom: 1px solid var(--cor-borda) !important;
}

.btn {
    border-radius: var(--raio-pequeno);
    font-weight: 600;
    font-size: 13.5px;
    padding: 7px 14px;
}

.btn-sm {
    padding: 5px 10px;
    font-size: 12.5px;
}

.btn-primary {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
    background: var(--cor-primaria-escura);
    border-color: var(--cor-primaria-escura);
}

.btn-outline-primary {
    color: var(--cor-primaria);
    border-color: #c7d2fe;
}

.btn-outline-primary:hover {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

.btn-light {
    background: #fff;
    border-color: var(--cor-borda);
}

.btn-icone {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.form-control,
.custom-select {
    border-radius: var(--raio-pequeno);
    border-color: #cbd5e1;
    font-size: 14px;
    min-height: 38px;
}

.form-control:focus {
    border-color: #a5b4fc;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .15);
}

.form-control-color {
    padding: 4px;
    width: 64px;
    cursor: pointer;
}

.form-group label {
    font-weight: 600;
    font-size: 13px;
    color: #334155;
    margin-bottom: 4px;
}

.errorlist {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
    color: var(--cor-perigo);
    font-size: 12.5px;
}

.helptext,
.form-text {
    color: var(--cor-texto-suave);
    font-size: 12px;
}

.badge {
    font-weight: 600;
    padding: .35em .6em;
    border-radius: 6px;
}

.badge-cor {
    color: #fff;
}

.badge-suave {
    background: #f1f5f9;
    color: #334155;
}

.etiqueta {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    white-space: nowrap;
}

.prioridade-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
}

.prioridade-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: currentColor;
}

.barra-progresso {
    height: 6px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.barra-progresso > span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--cor-sucesso);
    transition: width .3s;
}

.texto-atrasado {
    color: var(--cor-perigo) !important;
    font-weight: 600;
}

.estado-vazio {
    text-align: center;
    padding: 48px 16px;
    color: var(--cor-texto-suave);
}

.estado-vazio i {
    font-size: 44px;
    color: #cbd5e1;
    display: block;
    margin-bottom: 8px;
}

/* ---------------------------------------------------------------------------------------------- */
/* DataTables                                                                                      */

table.dataTable {
    border-collapse: separate !important;
    border-spacing: 0;
    background: #fff;
    width: 100% !important;
}

.table-responsive {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 16px;
    box-shadow: var(--sombra);
    margin-left: 15px;
    margin-right: 15px;
    max-width: calc(100% - 30px);
}

table.dataTable thead th {
    border-bottom: 1px solid var(--cor-borda) !important;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--cor-texto-suave);
    font-weight: 700;
    padding: 10px 12px !important;
}

table.dataTable thead #trBusca th {
    padding: 6px 4px !important;
    border-bottom: none !important;
}

table.dataTable tbody td {
    padding: 10px 12px !important;
    vertical-align: middle;
    border-top: 1px solid #f1f5f9 !important;
}

table.dataTable.table-striped tbody tr:nth-of-type(odd) {
    background: #fafbfc;
}

table.dataTable tbody tr:hover {
    background: var(--cor-primaria-suave) !important;
}

.dataTables_wrapper .dt-buttons {
    margin-bottom: 12px;
}

.dataTables_wrapper .dt-buttons .btn {
    margin-right: 6px;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    border: 1px solid #cbd5e1;
    border-radius: var(--raio-pequeno);
    padding: 4px 8px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: var(--raio-pequeno) !important;
    border: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--cor-primaria) !important;
    color: #fff !important;
}

.botao-grade {
    color: var(--cor-texto-suave);
    cursor: pointer;
}

.botao-grade:hover {
    color: var(--cor-primaria);
}

.btn-group_flex {
    display: flex;
    gap: 4px;
    align-items: center;
}

/* ---------------------------------------------------------------------------------------------- */
/* Painel inicial                                                                                   */

.kpi {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 18px;
    box-shadow: var(--sombra);
    display: flex;
    align-items: center;
    gap: 14px;
    height: 100%;
    color: var(--cor-texto);
    transition: transform .15s, box-shadow .15s;
}

a.kpi:hover {
    transform: translateY(-2px);
    box-shadow: var(--sombra-media);
    color: var(--cor-texto);
}

.kpi-icone {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.kpi-valor {
    font-size: 26px;
    font-weight: 800;
    line-height: 1.1;
}

.kpi-rotulo {
    color: var(--cor-texto-suave);
    font-size: 12.5px;
    font-weight: 500;
}

.painel {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    height: 100%;
}

.painel-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--cor-borda);
}

.painel-topo h2 {
    font-size: 15px;
    margin: 0;
}

.painel-corpo {
    padding: 14px 18px;
}

.grafico {
    width: 100%;
    height: 280px;
}

.lista-tarefas-painel .item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    color: var(--cor-texto);
}

.lista-tarefas-painel .item:last-child {
    border-bottom: none;
}

.lista-tarefas-painel .item:hover .item-titulo {
    color: var(--cor-primaria);
}

.item-titulo {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.item-meta {
    color: var(--cor-texto-suave);
    font-size: 12px;
}

.codigo-tarefa {
    color: var(--cor-texto-suave);
    font-size: 12px;
    font-weight: 600;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.atividade {
    display: flex;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
}

.atividade:last-child {
    border-bottom: none;
}

.projeto-progresso {
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
}

.projeto-progresso:last-child {
    border-bottom: none;
}

/* ---------------------------------------------------------------------------------------------- */
/* Kanban                                                                                           */

.kanban-topo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.kanban-projeto-titulo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.kanban-projeto-titulo h1 {
    font-size: 21px;
    margin: 0;
}

.kanban-projeto-icone {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    font-size: 13px;
}

.kanban-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 10px 12px;
    margin-bottom: 16px;
    box-shadow: var(--sombra);
}

.kanban-filtros .form-control {
    min-height: 34px;
    height: 34px;
    font-size: 13px;
    width: auto;
    min-width: 150px;
}

.kanban-filtros .filtro-busca {
    min-width: 220px;
}

.kanban-quadro {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 12px;
    align-items: flex-start;
    min-height: calc(100vh - 260px);
}

.kanban-coluna {
    flex: 0 0 300px;
    width: 300px;
    background: #e9eef5;
    border-radius: var(--raio);
    display: flex;
    flex-direction: column;
}

.kanban-coluna-topo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 12px 8px;
    border-top: 3px solid var(--cor-coluna, #94a3b8);
    border-radius: var(--raio) var(--raio) 0 0;
}

.kanban-coluna-titulo {
    font-weight: 700;
    font-size: 13.5px;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kanban-coluna-contador {
    background: #fff;
    border-radius: 999px;
    padding: 0 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--cor-texto-suave);
    line-height: 20px;
}

.kanban-coluna-contador.excedido {
    background: #fee2e2;
    color: #b91c1c;
}

.kanban-coluna-corpo {
    flex: 1;
    padding: 4px 10px;
    min-height: 60px;
}

.kanban-coluna-rodape {
    padding: 6px 10px 10px;
}

.kanban-adicionar {
    width: 100%;
    text-align: left;
    color: var(--cor-texto-suave);
    background: transparent;
    border: none;
    border-radius: var(--raio-pequeno);
    padding: 7px 8px;
    font-weight: 600;
    font-size: 13px;
}

.kanban-adicionar:hover {
    background: rgba(255, 255, 255, .7);
    color: var(--cor-texto);
}

.kanban-form-rapido textarea {
    resize: none;
    font-size: 13.5px;
    border-radius: var(--raio-pequeno);
    margin-bottom: 6px;
}

.kanban-card {
    background: #fff;
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 8px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
    border: 1px solid transparent;
    border-left: 3px solid var(--cor-prioridade, #cbd5e1);
    cursor: grab;
    transition: box-shadow .15s, border-color .15s, transform .1s;
    position: relative;
}

.kanban-card:hover {
    box-shadow: var(--sombra-media);
    border-color: #c7d2fe;
    border-left-color: var(--cor-prioridade, #cbd5e1);
}

.kanban-card.concluida .kanban-card-titulo {
    text-decoration: line-through;
    color: var(--cor-texto-suave);
}

.kanban-card-cabecalho {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.kanban-card-titulo {
    font-weight: 600;
    font-size: 13.5px;
    line-height: 1.35;
    color: var(--cor-texto);
    word-break: break-word;
    display: block;
}

.kanban-card-etiquetas {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 6px;
}

.kanban-card-rodape {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    color: var(--cor-texto-suave);
    font-size: 12px;
}

.kanban-card-rodape .indicador {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.kanban-card-rodape .avatar {
    margin-left: auto;
}

.kanban-card-fantasma {
    opacity: .4;
    background: var(--cor-primaria-suave);
    border: 2px dashed #a5b4fc;
}

.kanban-card-arrastando {
    transform: rotate(2deg);
    box-shadow: var(--sombra-alta);
}

.kanban-coluna-nova {
    flex: 0 0 280px;
    border: 2px dashed #cbd5e1;
    background: transparent;
    border-radius: var(--raio);
    color: var(--cor-texto-suave);
    font-weight: 600;
    padding: 14px;
    text-align: center;
    cursor: pointer;
}

.kanban-coluna-nova:hover {
    border-color: #a5b4fc;
    color: var(--cor-primaria);
}

.projetos-grade .projeto-card {
    display: block;
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 18px;
    box-shadow: var(--sombra);
    color: var(--cor-texto);
    height: 100%;
    transition: transform .15s, box-shadow .15s;
    border-top: 4px solid var(--cor-projeto, var(--cor-primaria));
}

.projetos-grade .projeto-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--sombra-media);
    color: var(--cor-texto);
}

/* ---------------------------------------------------------------------------------------------- */
/* Detalhe da tarefa                                                                                */

.tarefa-titulo {
    font-size: 20px !important;
    font-weight: 700;
}

.tarefa-lateral .form-group {
    margin-bottom: 12px;
}

.nav-abas {
    border-bottom: 1px solid var(--cor-borda);
    gap: 4px;
}

.nav-abas .nav-link {
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--cor-texto-suave);
    font-weight: 600;
    padding: 10px 12px;
}

.nav-abas .nav-link.active,
.nav-abas .nav-link:hover {
    color: var(--cor-primaria);
    border-bottom-color: var(--cor-primaria);
    background: transparent;
}

.nav-abas .badge {
    background: #e2e8f0;
    color: #334155;
    margin-left: 4px;
}

.checklist-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--raio-pequeno);
}

.checklist-item:hover {
    background: #f8fafc;
}

.checklist-item input[type=checkbox] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.checklist-item.concluido .checklist-texto {
    text-decoration: line-through;
    color: var(--cor-texto-suave);
}

.checklist-item .btn-excluir-item {
    margin-left: auto;
    opacity: 0;
    color: var(--cor-texto-suave);
}

.checklist-item:hover .btn-excluir-item {
    opacity: 1;
}

.comentario {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.comentario-corpo {
    flex: 1;
    background: #f8fafc;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 10px 14px;
}

.comentario-topo {
    display: flex;
    gap: 8px;
    align-items: baseline;
    margin-bottom: 4px;
}

.comentario-texto {
    white-space: pre-wrap;
    word-break: break-word;
}

.historico-item {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px dashed #e2e8f0;
    font-size: 13px;
}

.historico-item i {
    color: var(--cor-texto-suave);
    margin-top: 2px;
}

.anexo-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-pequeno);
    margin-bottom: 8px;
}

.anexo-icone {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: var(--cor-primaria-suave);
    color: var(--cor-primaria);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.zona-upload {
    border: 2px dashed #cbd5e1;
    border-radius: var(--raio);
    padding: 22px;
    text-align: center;
    color: var(--cor-texto-suave);
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.zona-upload.arrastando,
.zona-upload:hover {
    border-color: #a5b4fc;
    background: var(--cor-primaria-suave);
}

.cronometro-painel {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f8fafc;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 12px 14px;
}

.cronometro-display {
    font-size: 24px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------------------------------------- */
/* Login / criar conta                                                                              */

.tela-acesso {
    min-height: 100vh;
    display: flex;
    background: #fff;
}

.tela-acesso-arte {
    flex: 1;
    background: radial-gradient(1200px 600px at 10% 10%, #6366f1 0%, #4338ca 40%, #1e1b4b 100%);
    color: #fff;
    padding: 56px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

.tela-acesso-arte h2 {
    font-size: 36px;
    font-weight: 800;
    line-height: 1.15;
    max-width: 480px;
}

.tela-acesso-arte p {
    color: #c7d2fe;
    font-size: 16px;
    max-width: 440px;
}

.tela-acesso-arte .mini-quadro {
    display: flex;
    gap: 12px;
    margin-top: 32px;
}

.mini-coluna {
    width: 150px;
    background: rgba(255, 255, 255, .1);
    border-radius: 12px;
    padding: 10px;
}

.mini-coluna span {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #c7d2fe;
    margin-bottom: 8px;
}

.mini-card {
    background: rgba(255, 255, 255, .92);
    border-radius: 8px;
    height: 34px;
    margin-bottom: 8px;
    position: relative;
}

.mini-card::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 10px;
    width: 60%;
    height: 6px;
    border-radius: 4px;
    background: #cbd5e1;
}

.mini-card::after {
    content: "";
    position: absolute;
    left: 10px;
    top: 21px;
    width: 35%;
    height: 5px;
    border-radius: 4px;
    background: #e2e8f0;
}

.tela-acesso-form {
    width: 480px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px;
}

.tela-acesso-form h1 {
    font-size: 26px;
    font-weight: 800;
}

.tela-acesso-form .form-control {
    height: 44px;
}

.tela-acesso-form .btn-primary {
    height: 44px;
}

@media (max-width: 991px) {
    .tela-acesso-arte {
        display: none;
    }

    .tela-acesso-form {
        width: 100%;
        padding: 32px 20px;
    }
}

/* ---------------------------------------------------------------------------------------------- */
/* Calendário e cronograma                                                                          */

.calendario-container {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 16px;
    box-shadow: var(--sombra);
}

.fc .fc-button-primary {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    background: var(--cor-primaria-escura);
    border-color: var(--cor-primaria-escura);
}

.fc .fc-event {
    border-radius: 6px;
    padding: 1px 4px;
    font-size: 12px;
    cursor: pointer;
}

.gantt-container {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra);
    overflow: hidden;
}

/* ---------------------------------------------------------------------------------------------- */
/* Diversos                                                                                         */

.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border-color: #cbd5e1;
    border-radius: var(--raio-pequeno);
    min-height: 38px;
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: #a5b4fc;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: var(--cor-primaria-suave);
    border-color: #c7d2fe;
    border-radius: 6px;
    color: var(--cor-primaria-escura);
    font-weight: 600;
    font-size: 12.5px;
}

.ui-autocomplete {
    z-index: 2000 !important;
    background: #fff;
    border: 1px solid var(--cor-borda) !important;
    border-radius: var(--raio-pequeno);
    box-shadow: var(--sombra-alta);
    padding: 4px 0 !important;
}

.ui-autocomplete .ui-menu-item-wrapper {
    padding: 6px 12px;
}

.ui-autocomplete .ui-state-active {
    background: var(--cor-primaria-suave) !important;
    border: none !important;
    color: var(--cor-texto) !important;
    margin: 0 !important;
}

.results_on_deck > div {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--cor-primaria-suave);
    border-radius: 6px;
    padding: 3px 8px;
    font-weight: 600;
    font-size: 13px;
}

.toast-top-right {
    top: 76px;
}

#toast-container > div {
    border-radius: var(--raio-pequeno);
    box-shadow: var(--sombra-alta);
    opacity: .97;
}

.swal-button--sim {
    background-color: var(--cor-primaria);
}

.custom-range::-webkit-slider-thumb {
    background: var(--cor-primaria);
}

.permissoes-modulo th {
    font-size: 12px;
}

@media (max-width: 576px) {
    main.content {
        padding: 14px 12px 32px !important;
    }

    .topo {
        padding: 0 12px;
        gap: 8px;
    }

    .table-responsive {
        padding: 8px;
    }

    .kanban-coluna {
        flex-basis: 85vw;
        width: 85vw;
    }
}

@media print {
    .sidebar, .topo, .dt-buttons, .kanban-filtros {
        display: none !important;
    }
}


/* Editores de texto formatado (descrição da tarefa): fonte monoespaçada disponível no Windows e no Linux */
.editor-rico-area .ql-toolbar.ql-snow {
    border-color: var(--bs-border-color, #ced4da);
    border-radius: 6px 6px 0 0;
}

.editor-rico-area .ql-container.ql-snow {
    border-color: var(--bs-border-color, #ced4da);
    border-radius: 0 0 6px 6px;
    font-family: "Courier New", Courier, "Liberation Mono", "Nimbus Mono PS", monospace;
    font-size: var(--fonte-editor, 16px);
}

.editor-rico-area .ql-editor {
    -webkit-text-stroke: 0.35px currentColor;
    min-height: 180px;
    font-family: inherit;
}

.editor-rico-area .ql-editor.ql-blank::before {
    font-family: inherit;
    font-style: normal;
}

.editor-rico-area .ql-editor pre.ql-syntax {
    font-family: inherit;
}
