/* =====================================================================
   RGPI360 — camada visual corporativa
   ---------------------------------------------------------------------
   Carregada por último no template. Só altera aparência: nenhum id,
   name, classe ou comportamento usado pelo JavaScript é renomeado.
   Compatível com Bootstrap 5.3 (variáveis --bs-*) e com o vocabulário
   de classes do Fluig Style Guide (btn, form-control, panel, table...).
   ===================================================================== */

@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

:root {
    /* Paleta extraída do logo RGPI */
    --rg-pinho:        #12302C;   /* menu / header */
    --rg-pinho-2:      #1B403B;   /* hover no menu */
    --rg-pinho-3:      #0C2420;   /* submenu */
    --rg-acao:         #0B6E5F;   /* ação primária */
    --rg-acao-hover:   #085A4E;
    --rg-acao-suave:   #E3F1EE;
    --rg-folha:        #8DB843;   /* arco do logo — marcador ativo */
    --rg-fundo:        #EEF2F1;
    --rg-superficie:   #FFFFFF;
    --rg-tinta:        #17312D;
    --rg-texto-2:      #5B6F6B;
    --rg-texto-3:      #8A9A97;
    --rg-linha:        #D7E0DE;
    --rg-linha-suave:  #E7EDEB;

    --rg-sucesso:      #2F8A4C;
    --rg-alerta:       #B7791F;
    --rg-perigo:       #C0392B;
    --rg-info:         #2B6CB0;

    --rg-raio:         6px;
    --rg-raio-lg:      10px;
    --rg-sombra:       0 1px 2px rgba(18, 48, 44, .06), 0 1px 1px rgba(18, 48, 44, .04);
    --rg-sombra-alta:  0 8px 24px rgba(18, 48, 44, .14);
    --rg-foco:         0 0 0 3px rgba(11, 110, 95, .28);
    --rg-fonte:        "IBM Plex Sans", "Segoe UI", Roboto, Arial, sans-serif;

    /* Bootstrap 5 herda a paleta */
    --bs-primary:            #0B6E5F;
    --bs-primary-rgb:        11, 110, 95;
    --bs-link-color:         #0B6E5F;
    --bs-link-color-rgb:     11, 110, 95;
    --bs-link-hover-color:   #085A4E;
    --bs-link-hover-color-rgb: 8, 90, 78;
    --bs-body-font-family:   var(--rg-fonte);
    --bs-body-color:         #17312D;
    --bs-body-bg:            #EEF2F1;
    --bs-border-color:       #D7E0DE;
    --bs-border-radius:      6px;
    --bs-secondary-color:    #5B6F6B;
}

/* ---------------------------------------------------------------------
   Base
   --------------------------------------------------------------------- */
html body {
    font-family: var(--rg-fonte) !important;
    font-size: 13px !important;
    line-height: 1.5;
    color: var(--rg-tinta);
    background-color: var(--rg-fundo);
    -webkit-font-smoothing: antialiased;
}

html body .pcoded-main-container,
html body .pcoded .pcoded-inner-content,
html body .main-body .page-wrapper {
    background-color: var(--rg-fundo);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--rg-fonte);
    color: var(--rg-tinta);
    font-weight: 600;
    letter-spacing: -0.005em;
}

a { color: var(--rg-acao); }
a:hover { color: var(--rg-acao-hover); }

.text-muted { color: var(--rg-texto-2) !important; }

::selection { background: rgba(141, 184, 67, .35); }

:focus-visible {
    outline: 2px solid var(--rg-acao);
    outline-offset: 2px;
}

/* ---------------------------------------------------------------------
   Header
   --------------------------------------------------------------------- */
#pcoded .pcoded-header,
#pcoded .pcoded-header .navbar-logo {
    background: var(--rg-pinho);
}

#pcoded .pcoded-header {
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    box-shadow: 0 1px 0 rgba(0, 0, 0, .12);
}

#pcoded .pcoded-header .navbar-logo {
    border-right: 1px solid rgba(255, 255, 255, .06);
}

#pcoded .pcoded-header a,
#pcoded .pcoded-header .dropdown-toggle {
    color: #DDE7E4;
}

#pcoded .pcoded-header .nav-left > li > a,
#pcoded .pcoded-header .mobile-menu,
#pcoded .pcoded-header .mobile-options {
    border-radius: var(--rg-raio);
    transition: background-color .15s ease, color .15s ease;
}

#pcoded .pcoded-header .nav-left > li > a:hover,
#pcoded .pcoded-header .mobile-menu:hover,
#pcoded .pcoded-header .mobile-options:hover {
    background-color: rgba(255, 255, 255, .08);
    color: #fff;
}

#pcoded .pcoded-header .user-profile .dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px 4px 4px;
    border-radius: 999px;
    transition: background-color .15s ease;
}

#pcoded .pcoded-header .user-profile .dropdown-toggle:hover {
    background-color: rgba(255, 255, 255, .08);
}

#pcoded .pcoded-header .user-profile img {
    width: 32px;
    height: 32px;
    object-fit: cover;
    margin-right: 0;
    box-shadow: 0 0 0 2px var(--rg-folha);
}

#pcoded .pcoded-header .user-profile span {
    font-weight: 500;
    font-size: 13px;
}

#pcoded .pcoded-header .profile-notification {
    border: 1px solid var(--rg-linha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra-alta);
    padding: 6px;
    overflow: hidden;
}

#pcoded .pcoded-header .profile-notification li {
    padding: 0;
    border-radius: var(--rg-raio);
}

#pcoded .pcoded-header .profile-notification li > a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    color: var(--rg-tinta);
    font-size: 13px;
    border-radius: var(--rg-raio);
    transition: background-color .12s ease;
}

#pcoded .pcoded-header .profile-notification li > a i {
    color: var(--rg-texto-2);
    font-size: 15px;
    width: 16px;
    text-align: center;
}

#pcoded .pcoded-header .profile-notification li:hover,
#pcoded .pcoded-header .profile-notification li > a:hover {
    background-color: var(--rg-acao-suave);
}

#pcoded .pcoded-header .profile-notification li:last-child > a { color: var(--rg-perigo); }
#pcoded .pcoded-header .profile-notification li:last-child > a i { color: var(--rg-perigo); }

/* ---------------------------------------------------------------------
   Menu lateral
   --------------------------------------------------------------------- */
#pcoded .pcoded-navbar,
#pcoded .pcoded-navbar .pcoded-inner-navbar,
#pcoded .pcoded-navbar .nav-list {
    background-color: var(--rg-pinho);
}

#pcoded .pcoded-navbar .pcoded-navigation-label {
    color: #7F9B95;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    padding: 22px 20px 8px;
}

#pcoded .pcoded-navbar .pcoded-item > li > a {
    color: #C9D6D3;
    font-size: 13px !important;
    font-weight: 500;
    border-bottom-color: transparent;
    border-left: 3px solid transparent;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

#pcoded .pcoded-navbar .pcoded-item > li > a .pcoded-micon,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a:after {
    color: #8FA9A3;
}

#pcoded .pcoded-navbar .pcoded-item > li:hover > a,
#pcoded .pcoded-navbar .pcoded-item > li.active:hover > a {
    background-color: var(--rg-pinho-2);
    color: #fff;
}

#pcoded .pcoded-navbar .pcoded-item > li:hover > a .pcoded-micon,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu:hover > a:after {
    color: #fff;
}

/* Categoria aberta / ativa: marcador verde-folha do logo */
#pcoded .pcoded-navbar .pcoded-item > li.active > a,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-trigger > a,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-trigger:hover > a {
    background-color: var(--rg-pinho-2);
    color: #fff;
    border-left-color: var(--rg-folha);
}

#pcoded .pcoded-navbar .pcoded-item > li.active > a .pcoded-micon,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-trigger > a .pcoded-micon,
#pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger > a:after {
    color: var(--rg-folha);
}

/* Submenu */
#pcoded .pcoded-navbar .pcoded-item li .pcoded-submenu {
    background-color: var(--rg-pinho-3);
    border-left-color: var(--rg-folha);
}

#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a {
    color: #A9BCB8;
    font-size: 12.5px !important;
    padding: 9px 20px 9px 22px;
    border-bottom-color: transparent;
    transition: color .12s ease, background-color .12s ease;
}

#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a .pcoded-mtext:after {
    border-left-color: #4E6E68;
}

#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li:hover > a {
    color: #fff;
    background-color: rgba(255, 255, 255, .04);
}

#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li.active > a {
    color: var(--rg-folha);
    font-weight: 600;
}

#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li.active > a .pcoded-mtext:after,
#pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li:hover > a .pcoded-mtext:after {
    border-left-color: var(--rg-folha);
}

/* ---------------------------------------------------------------------
   Cabeçalho de página (elemento de identidade)
   --------------------------------------------------------------------- */
html body .page-header.card {
    background: var(--rg-superficie);
    border: 1px solid var(--rg-linha);
    border-left: 4px solid var(--rg-folha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra);
    margin: 24px 24px 16px;
    padding: 18px 22px;
}

html body .page-header.card > .row { row-gap: 10px; }

html body .page-header.card .page-header-title {
    display: flex;
    align-items: center;
    gap: 14px;
}

html body .page-header.card .page-header-title > i {
    float: none;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    margin: 0;
    border-radius: var(--rg-raio-lg);
    background: var(--rg-pinho) !important;
    color: var(--rg-folha);
    font-size: 19px;
    box-shadow: none;
}

html body .page-header.card h5 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--rg-tinta);
    display: block;
    margin: 0;
}

html body .page-header.card h5 + span {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    color: var(--rg-texto-2);
}

html body .page-header.card .page-header-breadcrumb {
    display: flex;
    justify-content: flex-end;
}

html body .page-header.card .breadcrumb {
    float: none;
    margin: 0;
    padding: 6px 12px;
    background: var(--rg-fundo);
    border-radius: 999px;
    font-size: 12px;
}

html body .page-header.card .breadcrumb a {
    font-size: 12px;
    color: var(--rg-texto-2);
    transition: color .12s ease;
}

html body .page-header.card .breadcrumb a:hover { color: var(--rg-acao); }

html body .page-header.card .breadcrumb-item + .breadcrumb-item::before { color: var(--rg-texto-3); }

html body .page-header.card .breadcrumb-item:last-child a {
    color: var(--rg-tinta);
    font-weight: 500;
}

/* Área de conteúdo alinhada ao cabeçalho */
html body .pcoded-inner-content { padding: 0; }
html body .main-body .page-wrapper { padding: 0 24px 24px; }
html body .main-body .page-wrapper .page-header.card { margin-left: 0; margin-right: 0; }

/* ---------------------------------------------------------------------
   Cards
   --------------------------------------------------------------------- */
html body .card {
    background: var(--rg-superficie);
    border: 1px solid var(--rg-linha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra);
    margin-bottom: 20px;
}

html body .card .card-header {
    padding: 16px 22px;
    border-bottom: 1px solid var(--rg-linha-suave);
    background: transparent;
}

html body .card .card-header h5,
html body .card .card-header .card-title {
    font-size: 15px;
    font-weight: 600;
    margin: 0;
    color: var(--rg-tinta);
}

html body .card .card-header h5:after { display: none; }

html body .card .card-header span,
html body .card .card-header .card-subtitle {
    color: var(--rg-texto-2);
    font-size: 12.5px;
}

html body .card .card-block,
html body .card .card-body {
    padding: 20px 22px;
}

html body .card .card-footer {
    background: #F7FAF9;
    border-top: 1px solid var(--rg-linha-suave);
    padding: 14px 22px;
}

/* Fluig: painéis com o mesmo acabamento */
html body .panel {
    border: 1px solid var(--rg-linha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra);
}

html body .panel > .panel-heading {
    background: #F7FAF9;
    border-bottom: 1px solid var(--rg-linha-suave);
    font-weight: 600;
    border-radius: var(--rg-raio-lg) var(--rg-raio-lg) 0 0;
}

/* KPIs e cards de pergunta: hover discreto, sem deslocar layout */
html body .kpi-card,
html body .card-pergunta {
    transition: border-color .15s ease, box-shadow .15s ease;
}

html body .kpi-card:hover,
html body .card-pergunta:hover {
    border-color: var(--rg-acao);
    box-shadow: 0 4px 14px rgba(18, 48, 44, .08);
}

html body .kpi-value { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------------
   Formulários
   --------------------------------------------------------------------- */
html body .form-label,
html body label.control-label {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--rg-texto-2);
    margin-bottom: 5px;
}

html body .form-control,
html body .form-select {
    font-family: var(--rg-fonte);
    font-size: 13px;
    color: var(--rg-tinta);
    background-color: #fff;
    border: 1px solid #C9D4D1;
    border-radius: var(--rg-raio);
    min-height: 36px;
    padding: 7px 11px;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

html body textarea.form-control { min-height: 72px; }

html body .form-control-sm,
html body .form-select-sm { min-height: 30px; padding: 4px 9px; font-size: 12.5px; }

html body .form-control:hover:not(:disabled):not([readonly]),
html body .form-select:hover:not(:disabled) {
    border-color: #9FB2AD;
}

html body .form-control:focus,
html body .form-select:focus {
    border-color: var(--rg-acao);
    box-shadow: var(--rg-foco);
    outline: 0;
}

html body .form-control::placeholder { color: var(--rg-texto-3); opacity: 1; }

html body .form-control:disabled,
html body .form-control[readonly],
html body .form-select:disabled {
    background-color: #F1F5F4;
    color: var(--rg-texto-2);
    border-color: var(--rg-linha);
    cursor: not-allowed;
}

html body .form-control[readonly] { cursor: default; }

/* Feedback de validação */
html body .form-control.is-invalid,
html body .form-select.is-invalid,
html body .was-validated .form-control:invalid,
html body .has-error .form-control {
    border-color: var(--rg-perigo);
    background-color: #FFF8F7;
}

html body .form-control.is-invalid:focus,
html body .form-select.is-invalid:focus,
html body .has-error .form-control:focus {
    box-shadow: 0 0 0 3px rgba(192, 57, 43, .2);
}

html body .form-control.is-valid,
html body .form-select.is-valid,
html body .has-success .form-control {
    border-color: var(--rg-sucesso);
}

html body .invalid-feedback,
html body .has-error .help-block { color: var(--rg-perigo); font-size: 12px; }

html body .valid-feedback { color: var(--rg-sucesso); font-size: 12px; }

html body .form-text,
html body .help-block { color: var(--rg-texto-2); font-size: 12px; }

html body .form-check-input:checked {
    background-color: var(--rg-acao);
    border-color: var(--rg-acao);
}

html body .form-check-input:focus { box-shadow: var(--rg-foco); border-color: var(--rg-acao); }

html body .input-group-text {
    background: #F1F5F4;
    border-color: #C9D4D1;
    color: var(--rg-texto-2);
    font-size: 13px;
}

/* Select2 alinhado aos campos nativos */
html body .select2-container--default .select2-selection--single,
html body .select2-container--default .select2-selection--multiple {
    min-height: 36px;
    border: 1px solid #C9D4D1;
    border-radius: var(--rg-raio);
    transition: border-color .15s ease, box-shadow .15s ease;
}

html body .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 30px;
    color: var(--rg-tinta);
    font-size: 13px;
}

html body .select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; }

html body .select2-container--default.select2-container--focus .select2-selection--single,
html body .select2-container--default.select2-container--focus .select2-selection--multiple,
html body .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--rg-acao);
    box-shadow: var(--rg-foco);
}

html body .select2-dropdown {
    border-color: var(--rg-linha);
    border-radius: var(--rg-raio);
    box-shadow: var(--rg-sombra-alta);
    font-size: 13px;
}

html body .select2-search--dropdown .select2-search__field {
    border: 1px solid #C9D4D1;
    border-radius: var(--rg-raio);
    padding: 6px 9px;
}

html body .select2-results__option--highlighted.select2-results__option--selectable,
html body .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--rg-acao-suave) !important;
    color: var(--rg-tinta) !important;
}

html body .select2-container--default .select2-results__option[aria-selected=true],
html body .select2-container--default .select2-results__option--selected {
    background-color: #F1F5F4;
    font-weight: 500;
}

html body .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: var(--rg-acao-suave);
    border: 1px solid #BFDCD5;
    color: var(--rg-acao-hover);
    border-radius: 4px;
}

/* ---------------------------------------------------------------------
   Botões
   --------------------------------------------------------------------- */
html body .btn {
    font-family: var(--rg-fonte);
    font-size: 13px !important;
    font-weight: 500;
    line-height: 1.4;
    padding: 7px 14px;
    border-radius: var(--rg-raio);
    border-width: 1px;
    box-shadow: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .08s ease;
}

html body .btn i { vertical-align: -1px; }

html body .btn:active:not(:disabled) { transform: translateY(1px); }

html body .btn:focus-visible,
html body .btn.focus {
    box-shadow: var(--rg-foco);
    outline: 0;
}

html body .btn:disabled,
html body .btn.disabled {
    opacity: .5;
    cursor: not-allowed;
}

html body .btn-sm,
html body .btn-group-sm > .btn {
    font-size: 12px !important;
    padding: 4px 10px;
}

html body .btn-lg { font-size: 15px !important; padding: 10px 20px; }

html body .btn-primary {
    background-color: var(--rg-acao);
    border-color: var(--rg-acao);
    color: #fff;
}

html body .btn-primary:hover,
html body .btn-primary:focus,
html body .btn-primary:active,
html body .btn-primary.active {
    background-color: var(--rg-acao-hover) !important;
    border-color: var(--rg-acao-hover) !important;
    color: #fff;
}

html body .btn-secondary,
html body .btn-default {
    background-color: #fff;
    border-color: #C9D4D1;
    color: var(--rg-tinta);
}

html body .btn-secondary:hover,
html body .btn-default:hover,
html body .btn-secondary:focus,
html body .btn-default:focus {
    background-color: #F1F5F4 !important;
    border-color: #9FB2AD !important;
    color: var(--rg-tinta) !important;
}

html body .btn-success { background-color: var(--rg-sucesso); border-color: var(--rg-sucesso); color: #fff; }
html body .btn-success:hover,
html body .btn-success:focus { background-color: #25703D !important; border-color: #25703D !important; color: #fff; }

html body .btn-danger { background-color: var(--rg-perigo); border-color: var(--rg-perigo); color: #fff; }
html body .btn-danger:hover,
html body .btn-danger:focus { background-color: #A13023 !important; border-color: #A13023 !important; color: #fff; }

html body .btn-warning { background-color: #E9A23B; border-color: #E9A23B; color: #2B1D05; }
html body .btn-warning:hover,
html body .btn-warning:focus { background-color: #D48E27 !important; border-color: #D48E27 !important; color: #2B1D05; }

html body .btn-info { background-color: var(--rg-info); border-color: var(--rg-info); color: #fff; }
html body .btn-info:hover,
html body .btn-info:focus { background-color: #235A94 !important; border-color: #235A94 !important; color: #fff; }

html body .btn-outline-primary { color: var(--rg-acao); border-color: var(--rg-acao); background: transparent; }
html body .btn-outline-primary:hover { background-color: var(--rg-acao); border-color: var(--rg-acao); color: #fff; }

html body .btn-outline-secondary { color: var(--rg-texto-2); border-color: #C9D4D1; }
html body .btn-outline-secondary:hover { background-color: #F1F5F4; color: var(--rg-tinta); border-color: #9FB2AD; }

html body .btn-outline-danger { color: var(--rg-perigo); border-color: #E6B3AD; }
html body .btn-outline-danger:hover { background-color: var(--rg-perigo); border-color: var(--rg-perigo); color: #fff; }

html body .btn-link { color: var(--rg-acao); text-decoration: none; }
html body .btn-link:hover { color: var(--rg-acao-hover); text-decoration: underline; }

/* ---------------------------------------------------------------------
   Tabelas e DataTables
   --------------------------------------------------------------------- */
html body .table {
    --bs-table-striped-bg: #F6F9F8;
    --bs-table-hover-bg: #EAF4F1;
    --bs-table-border-color: var(--rg-linha-suave);
    font-size: 12.5px;
    color: var(--rg-tinta);
    font-variant-numeric: tabular-nums;
    margin-bottom: 0;
}

html body .table > thead > tr > th,
html body .table > thead > tr > td,
html body table.dataTable > thead > tr > th {
    background-color: #F1F5F4;
    color: var(--rg-texto-2);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    border-bottom: 1px solid var(--rg-linha) !important;
    padding: 10px 12px;
    vertical-align: middle;
}

html body .table > tbody > tr > td,
html body table.dataTable > tbody > tr > td {
    padding: 9px 12px;
    vertical-align: middle;
    border-color: var(--rg-linha-suave);
}

html body .table-bordered { border-color: var(--rg-linha-suave); }

html body .table > tbody > tr { transition: background-color .1s ease; }

/* Hover em todas as tabelas de listagem, não só .table-hover */
html body .table > tbody > tr:hover > *,
html body table.dataTable > tbody > tr:hover > * {
    --bs-table-bg-state: #EAF4F1;
    box-shadow: inset 0 0 0 9999px #EAF4F1 !important;
}

html body table.dataTable > tbody > tr.selected > * {
    box-shadow: inset 0 0 0 9999px rgba(11, 110, 95, .14) !important;
    color: var(--rg-tinta) !important;
}

/* Botões de ação dentro das linhas */
html body .table td .btn,
html body .table td a > i,
html body .table td > i {
    transition: color .12s ease, background-color .12s ease;
}

html body .table td a:hover > i { color: var(--rg-acao-hover); }

/* Contêiner do DataTables 2 */
html body div.dt-container {
    font-size: 12.5px;
    color: var(--rg-texto-2);
}

html body div.dt-container .dt-layout-row { margin: 10px 0; }

html body div.dt-container .dt-search input,
html body div.dt-container .dt-length select,
html body div.dataTables_wrapper .dataTables_filter input,
html body div.dataTables_wrapper .dataTables_length select {
    border: 1px solid #C9D4D1;
    border-radius: var(--rg-raio);
    padding: 6px 10px;
    min-height: 34px;
    background: #fff;
    color: var(--rg-tinta);
    transition: border-color .15s ease, box-shadow .15s ease;
}

html body div.dt-container .dt-search input { min-width: 220px; }

html body div.dt-container .dt-search input:focus,
html body div.dt-container .dt-length select:focus,
html body div.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--rg-acao);
    box-shadow: var(--rg-foco);
    outline: 0;
}

html body div.dt-container .dt-paging .dt-paging-button,
html body div.dataTables_wrapper .dataTables_paginate .paginate_button {
    border: 1px solid transparent !important;
    border-radius: var(--rg-raio) !important;
    padding: 5px 11px !important;
    margin: 0 2px;
    color: var(--rg-tinta) !important;
    background: transparent !important;
    transition: background-color .12s ease, border-color .12s ease;
}

html body div.dt-container .dt-paging .dt-paging-button:hover:not(.disabled):not(.current),
html body div.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) {
    background: #fff !important;
    border-color: var(--rg-linha) !important;
    color: var(--rg-acao) !important;
}

html body div.dt-container .dt-paging .dt-paging-button.current,
html body div.dt-container .dt-paging .dt-paging-button.current:hover,
html body div.dataTables_wrapper .dataTables_paginate .paginate_button.current,
html body div.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--rg-acao) !important;
    border-color: var(--rg-acao) !important;
    color: #fff !important;
    font-weight: 600;
}

html body div.dt-container .dt-paging .dt-paging-button.disabled,
html body div.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    color: var(--rg-texto-3) !important;
    opacity: .6;
}

html body div.dt-container .dt-info { color: var(--rg-texto-2); }

html body div.dt-container .dt-processing,
html body div.dataTables_wrapper .dataTables_processing {
    background: #fff;
    border: 1px solid var(--rg-linha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra-alta);
    color: var(--rg-tinta);
}

html body div.dt-container .dt-empty,
html body table.dataTable td.dataTables_empty {
    padding: 28px 12px !important;
    color: var(--rg-texto-2);
    text-align: center;
}

/* Botões de exportação (DataTables Buttons) */
html body div.dt-buttons .dt-button,
html body button.dt-button {
    background: #fff !important;
    border: 1px solid #C9D4D1 !important;
    border-radius: var(--rg-raio) !important;
    color: var(--rg-tinta) !important;
    font-size: 12.5px;
    padding: 6px 12px !important;
    margin-right: 6px;
    box-shadow: none !important;
    transition: background-color .12s ease, border-color .12s ease;
}

html body div.dt-buttons .dt-button:hover:not(.disabled),
html body button.dt-button:hover:not(.disabled) {
    background: var(--rg-acao-suave) !important;
    border-color: var(--rg-acao) !important;
    color: var(--rg-acao-hover) !important;
}

/* Rolagem horizontal em telas estreitas sem quebrar o layout */
html body .table-responsive,
html body div.dt-container .dt-layout-table,
html body div.dt-container .dt-scroll-body {
    -webkit-overflow-scrolling: touch;
}

/* ---------------------------------------------------------------------
   Badges, alertas e status
   --------------------------------------------------------------------- */
html body .badge {
    font-weight: 600;
    font-size: 11.5px;
    padding: 4px 9px;
    border-radius: 999px;
    letter-spacing: .01em;
}

html body .badge.bg-success,  html body .badge-success  { background-color: #DDF0E2 !important; color: #1F6A38 !important; }
html body .badge.bg-danger,   html body .badge-danger   { background-color: #F8E1DE !important; color: #9A2D21 !important; }
html body .badge.bg-warning,  html body .badge-warning  { background-color: #FBEBCF !important; color: #7A4F0F !important; }
html body .badge.bg-info,     html body .badge-info     { background-color: #DDE8F5 !important; color: #1F4E82 !important; }
html body .badge.bg-primary,  html body .badge-primary  { background-color: var(--rg-acao-suave) !important; color: var(--rg-acao-hover) !important; }
html body .badge.bg-secondary,html body .badge-secondary{ background-color: #E6ECEA !important; color: #43544F !important; }

html body .alert {
    border: 1px solid transparent;
    border-left-width: 4px;
    border-radius: var(--rg-raio);
    padding: 11px 14px;
    font-size: 13px;
}

html body .alert-success { background: #EEF8F1; border-color: #CBE7D3; border-left-color: var(--rg-sucesso); color: #1F5C33; }
html body .alert-danger  { background: #FDF2F0; border-color: #F1CEC9; border-left-color: var(--rg-perigo);  color: #852619; }
html body .alert-warning { background: #FEF7EA; border-color: #F4DFB5; border-left-color: var(--rg-alerta);  color: #6B450D; }
html body .alert-info    { background: #EFF4FB; border-color: #CCDCF0; border-left-color: var(--rg-info);    color: #1D4673; }

/* ---------------------------------------------------------------------
   Modais, abas, dropdowns
   --------------------------------------------------------------------- */
html body .modal-content {
    border: 0;
    border-radius: var(--rg-raio-lg);
    box-shadow: 0 20px 50px rgba(12, 36, 32, .25);
    overflow: hidden;
}

html body .modal-header {
    padding: 16px 22px;
    border-bottom: 1px solid var(--rg-linha-suave);
    background: #fff;
}

html body .modal-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--rg-tinta);
}

html body .modal-body { padding: 20px 22px; }

html body .modal-footer {
    padding: 12px 22px;
    background: #F7FAF9;
    border-top: 1px solid var(--rg-linha-suave);
    gap: 8px;
}

html body .modal-footer > * { margin: 0; }

html body .modal-backdrop.show { opacity: .45; background-color: var(--rg-pinho-3); }

html body .btn-close { opacity: .55; transition: opacity .12s ease; }
html body .btn-close:hover { opacity: 1; }

html body .nav-tabs {
    border-bottom: 1px solid var(--rg-linha);
    gap: 4px;
}

html body .nav-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: var(--rg-texto-2);
    font-weight: 500;
    padding: 9px 14px;
    margin-bottom: -1px;
    transition: color .12s ease, border-color .12s ease, background-color .12s ease;
}

html body .nav-tabs .nav-link:hover {
    color: var(--rg-tinta);
    background-color: #F1F5F4;
    border-bottom-color: var(--rg-linha);
}

html body .nav-tabs .nav-link.active,
html body .nav-tabs .nav-item.show .nav-link {
    color: var(--rg-acao);
    background: transparent;
    border-bottom-color: var(--rg-acao);
}

html body .nav-pills .nav-link.active { background-color: var(--rg-acao); }

html body .dropdown-menu {
    border: 1px solid var(--rg-linha);
    border-radius: var(--rg-raio-lg);
    box-shadow: var(--rg-sombra-alta);
    font-size: 13px;
    padding: 6px;
}

html body .dropdown-item {
    border-radius: var(--rg-raio);
    padding: 7px 12px;
    color: var(--rg-tinta);
}

html body .dropdown-item:hover,
html body .dropdown-item:focus { background-color: var(--rg-acao-suave); color: var(--rg-tinta); }

html body .dropdown-item.active,
html body .dropdown-item:active { background-color: var(--rg-acao); color: #fff; }

html body .pagination .page-link { color: var(--rg-acao); border-color: var(--rg-linha); }
html body .pagination .page-item.active .page-link { background-color: var(--rg-acao); border-color: var(--rg-acao); }

html body .progress { background-color: var(--rg-linha-suave); border-radius: 999px; }
html body .progress-bar { background-color: var(--rg-acao); }

/* ---------------------------------------------------------------------
   SweetAlert2
   --------------------------------------------------------------------- */
html body .swal2-popup {
    font-family: var(--rg-fonte);
    border-radius: 14px;
    padding: 24px;
}

html body .swal2-title { color: var(--rg-tinta); font-size: 20px; font-weight: 600; }
html body .swal2-html-container { color: var(--rg-texto-2); font-size: 14px; }

html body .swal2-styled { border-radius: var(--rg-raio) !important; font-weight: 500; font-size: 14px !important; }
html body .swal2-styled.swal2-confirm { background-color: var(--rg-acao) !important; }
html body .swal2-styled.swal2-confirm:hover { background-image: none !important; background-color: var(--rg-acao-hover) !important; }
html body .swal2-styled.swal2-cancel { background-color: #fff !important; color: var(--rg-tinta) !important; border: 1px solid #C9D4D1 !important; }
html body .swal2-styled.swal2-deny { background-color: var(--rg-perigo) !important; }
html body .swal2-styled:focus { box-shadow: var(--rg-foco) !important; }

/* ---------------------------------------------------------------------
   Loader global — mesma paleta
   --------------------------------------------------------------------- */
html body #rgpi-loader { background: rgba(12, 36, 32, .5); }
html body .rgpi-loader-box { border-radius: 14px; }
html body .rgpi-spinner { border-color: var(--rg-acao-suave); border-top-color: var(--rg-acao); }
html body .rgpi-loader-msg { color: var(--rg-tinta); font-size: 14px; font-weight: 600; letter-spacing: 0; }
html body .rgpi-loader-sub { color: var(--rg-texto-2); font-size: 12px; }

html body .loader-bg .loader-bar { background: var(--rg-folha); }

/* ---------------------------------------------------------------------
   Responsividade
   --------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    html body .main-body .page-wrapper { padding: 0 16px 16px; }

    html body .page-header.card {
        margin-top: 16px;
        padding: 14px 16px;
    }

    /* O Admindek centraliza e empilha o título abaixo de 991px; mantém alinhado à esquerda */
    html body .main-body .page-wrapper .align-items-end .page-header-title {
        display: flex;
        text-align: left;
    }

    html body .main-body .page-wrapper .align-items-end .page-header-title > i { margin: 0; }

    html body .main-body .page-wrapper .align-items-end .page-header-breadcrumb {
        display: flex;
        justify-content: flex-start;
        text-align: left;
        margin-top: 0;
    }
}

@media (max-width: 767.98px) {
    html body .page-header.card .page-header-title > i { width: 36px; height: 36px; font-size: 16px; }
    html body .page-header.card h5 { font-size: 16px; }

    html body .card .card-block,
    html body .card .card-body { padding: 16px; }

    html body .card .card-header { padding: 14px 16px; }

    /* Botões em coluna ocupam a largura toda e ficam fáceis de tocar */
    html body .card .row > [class*="col-"] > .btn { width: 100%; min-height: 40px; }

    html body div.dt-container .dt-layout-row:not(.dt-layout-table) {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    html body div.dt-container .dt-layout-cell { text-align: left !important; }
    html body div.dt-container .dt-search input { min-width: 0; width: 100%; margin-left: 0; }

    html body div.dt-container .dt-layout-table,
    html body .dataTables_wrapper { overflow-x: auto; }

    html body .modal-dialog { margin: 12px; }
    html body .modal-footer { flex-wrap: wrap; }
    html body .modal-footer > .btn { flex: 1 1 auto; }

    #pcoded .pcoded-header .user-profile span { display: none; }
}

/* ---------------------------------------------------------------------
   Acessibilidade
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    html body *,
    html body *::before,
    html body *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    html body .btn:active:not(:disabled) { transform: none; }
}

@media print {
    html body,
    html body .pcoded-main-container { background: #fff; }
    html body .card,
    html body .page-header.card { box-shadow: none; border-color: #ccc; }
}
