/* Identidade Insul. Cores do ADM preservadas; mesma camada de marca do Pecanita. */
:root {
  --insul-primary: #1b75bc;
  --insul-primary-dark: #1867a6;
  --insul-text: #152a5d;
  --insul-muted: #657387;
  --insul-background: #f7f8fb;
  --insul-surface: #fff;
  --insul-soft: #edf5fb;
  --insul-border: #dfe6ee;
  --insul-focus: rgba(27, 117, 188, .2);
  --primary: #1b75bc;
}

body, #wrapper #content-wrapper {
  background-color: var(--insul-background);
}

#wrapper, #content-wrapper, #content, #content > .container-fluid,
#content .row > [class*="col-"], .card, .card-body, .tab-content, .tab-pane,
.dataTables_wrapper {
  min-width: 0;
  max-width: 100%;
}

/* Corrigir a largura flex em vez de recortar tabela, acoes ou foco. */
#wrapper #content-wrapper { overflow-x: visible; }
.dataTables_wrapper { width: 100%; }
.dataTables_wrapper > table.dataTable { width: 100% !important; max-width: 100%; }
.dataTables_wrapper td, .dataTables_wrapper th { overflow-wrap: anywhere; }
body div.dataTables_wrapper div.dataTables_filter label { max-width: 100%; white-space: normal; }
body div.dataTables_wrapper div.dataTables_filter input { min-width: 0; max-width: 100%; }
.dataTables_wrapper .dataTables_length select { min-width: 4.25rem; padding-right: 1.75rem; }
body div.dataTables_wrapper div.dataTables_info,
body div.dataTables_wrapper div.dataTables_paginate { white-space: normal; overflow-wrap: anywhere; }
.dataTables_wrapper .pagination { flex-wrap: wrap; }

a, .btn-link { color: var(--insul-primary); }
a:hover { color: var(--insul-primary-dark); }
.text-primary { color: var(--insul-primary) !important; }
.border-left-primary { border-left-color: var(--insul-primary) !important; }
.border-bottom-primary { border-bottom-color: var(--insul-primary) !important; }
.bg-primary, .badge-primary, .page-item.active .page-link,
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
  color: #fff !important;
  background-color: var(--insul-primary) !important;
  border-color: var(--insul-primary) !important;
}
.page-link { color: var(--insul-primary); }
.bg-gradient-primary {
  background-color: var(--insul-primary);
  background-image: linear-gradient(180deg, #1b75bc 10%, #1867a6 100%);
}
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--insul-primary);
  border-color: var(--insul-primary);
}

.sidebar .sidebar-brand { height: auto; min-height: 5rem; padding: 1rem .75rem; }
.insul-brand-logo { width: 146px; max-width: 100%; height: auto; }
.insul-brand-symbol { display: none; width: 42px; height: 42px; object-fit: contain; border-radius: 50%; }
.sidebar.toggled .insul-brand-logo { display: none; }
.sidebar.toggled .insul-brand-symbol { display: block; }
.sidebar.sidebar-dark .nav-item .nav-link { color: rgba(255, 255, 255, .9); }
.sidebar.sidebar-dark .nav-item .nav-link i { color: rgba(255, 255, 255, .75); }
.sidebar.sidebar-dark .nav-item .nav-link:hover,
.sidebar.sidebar-dark .nav-item .nav-link:focus-visible,
.sidebar.sidebar-dark .nav-item.active .nav-link,
.sidebar.sidebar-dark .nav-item.active .nav-link i { color: #fff; }
.sidebar .nav-item .collapse .collapse-inner .collapse-item.active {
  color: var(--insul-primary);
  background-color: var(--insul-soft);
}

body.admin-user-module {
  --admin-user-primary: #1b75bc;
  --admin-user-primary-soft: #edf5fb;
  --admin-user-border: #dfe6ee;
  --admin-user-text: #30364a;
  --admin-user-muted: #657387;
}
body.admin-user-module .admin-user-page-header { background: linear-gradient(135deg, #fff, #edf5fb); }
body.admin-user-module .admin-user-page-header__icon { border-color: var(--insul-border); }
body.admin-user-module .topbar-page-heading-accent { background: var(--insul-primary); box-shadow: none; }
.card { border-color: var(--insul-border); }
.card-header, .table thead th { background-color: #f4f7fb; border-color: var(--insul-border); }

.btn-primary, .btn-primary:not(:disabled):not(.disabled):active {
  color: #fff; background: var(--insul-primary); border-color: var(--insul-primary);
}
.btn-primary:hover { background: var(--insul-primary-dark); border-color: var(--insul-primary-dark); }
.btn-project-standard { max-width: 100%; white-space: normal; }
.btn-outline-primary, .btn-project-standard.btn-primary,
.btn-project-standard.btn-outline-primary, body.admin-user-module .btn-primary {
  color: var(--insul-primary); background: transparent; border-color: var(--insul-primary);
}
body .btn-outline-primary:hover, body .btn-outline-primary:focus-visible,
body .btn-outline-primary:not(:disabled):not(.disabled):active,
body .btn-project-standard.btn-primary:hover, body .btn-project-standard.btn-primary:focus-visible,
body .btn-project-standard.btn-outline-primary:hover, body .btn-project-standard.btn-outline-primary:focus-visible,
body.admin-user-module .btn-primary:hover, body.admin-user-module .btn-primary:focus-visible {
  color: #fff; background: var(--insul-primary); border-color: var(--insul-primary);
}

/* O clique conserva o foco funcional, sem deixar o botao com aparencia de hover. */
.btn-outline-primary, .btn-project-standard.btn-primary { --insul-button-tone: #1b75bc; }
.btn-outline-secondary, .btn-project-standard.btn-secondary { --insul-button-tone: #6c757d; }
.btn-outline-success, .btn-project-standard.btn-success { --insul-button-tone: #1cc88a; }
.btn-outline-danger, .btn-project-standard.btn-danger { --insul-button-tone: #e74a3b; }
.btn-outline-warning, .btn-project-standard.btn-warning { --insul-button-tone: #a56a00; }
.btn-outline-info, .btn-project-standard.btn-info { --insul-button-tone: #36b9cc; }
.btn-outline-dark, .btn-project-standard.btn-dark { --insul-button-tone: #5a5c69; }
.btn-outline-light, .btn-project-standard.btn-light { --insul-button-tone: #6c757d; }
@supports selector(:focus-visible) {
  body .btn-project-standard:not(.active):not(:hover):not(:active):focus:not(:focus-visible),
  body .btn[class*="btn-outline-"]:not(.active):not(:hover):not(:active):focus:not(:focus-visible) {
    color: var(--insul-button-tone, #6c757d);
    background: transparent;
    box-shadow: none !important;
  }
}

.form-control:focus, .custom-select:focus,
body.admin-user-module .form-control:focus, body.admin-user-module .custom-select:focus,
body.admin-user-module .bootstrap-select.show > .dropdown-toggle {
  border-color: var(--insul-primary);
  box-shadow: 0 0 0 .2rem var(--insul-focus);
}
.form-control.is-invalid:focus, .custom-select.is-invalid:focus,
.was-validated .form-control:invalid:focus, .was-validated .custom-select:invalid:focus {
  border-color: #e74a3b;
  box-shadow: 0 0 0 .2rem rgba(231, 74, 59, .2);
}
.form-control.is-valid:focus, .custom-select.is-valid:focus,
.was-validated .form-control:valid:focus, .was-validated .custom-select:valid:focus {
  border-color: #1cc88a;
  box-shadow: 0 0 0 .2rem rgba(28, 200, 138, .2);
}
body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--insul-primary);
  outline-offset: 3px;
}
body .bootstrap-select > .dropdown-toggle:focus-visible { outline: 2px solid var(--insul-primary) !important; }
.sidebar :is(a, button):focus-visible, .insul-auth-brand a:focus-visible { outline-color: #fff; }
.nav-tabs .nav-link.active { color: var(--insul-primary); font-weight: 700; }
.card-filter.border-left-primary { --card-filter-color: #1b75bc; }
.card-filter:hover, .card-filter:focus { transform: none; }
.card-filter:focus-visible { outline-offset: 3px; }

/* O balao nao intercepta o mouse. Icones mantem area de clique e a cor cinza. */
.tooltip { pointer-events: none; }
.table .text-secondary.nounderline {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.75rem; min-height: 1.75rem; vertical-align: middle;
  color: #6c757d !important; background: transparent; border: 0; padding: .15rem;
}
.table .text-secondary.nounderline > :is(i, svg) { pointer-events: none; }
.table .text-secondary.nounderline:hover { color: #495057 !important; }
.modal-content { border-color: var(--insul-border); border-radius: .65rem; }
.modal-header { background: #f4f7fb; border-color: var(--insul-border); }
.modal-title { color: var(--insul-text); }
.modal .close { opacity: .8; }

body.admin-user-auth-layout { height: auto; min-height: 100vh; overflow-x: visible; background: var(--insul-background); }
.insul-auth-shell { display: flex; min-height: 100vh; min-height: 100svh; }
.insul-auth-brand {
  display: flex; flex: 0 0 45%; align-items: center; justify-content: center;
  min-width: 0; padding: 3rem; text-align: center;
  background: linear-gradient(160deg, #1b75bc, #1867a6);
}
.insul-auth-brand__content { max-width: 28rem; }
.insul-auth-brand__logo { width: 300px; max-width: 100%; height: auto; margin-bottom: 2rem; }
.insul-auth-brand__label { color: rgba(255,255,255,.85); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.insul-auth-brand__name { color: #fff; font-size: 2rem; font-weight: 700; line-height: 1.3; }
.insul-auth-brand__site { display: inline-block; margin-top: 1rem; }
.insul-auth-brand__site, .insul-auth-brand__site:hover { color: #fff; }
.insul-auth-brand__partner { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); }
.insul-auth-brand__partner-link { display: inline-flex; flex-direction: column; align-items: center; gap: .75rem; max-width: 100%; color: #fff; }
.insul-auth-brand__partner-link:hover { color: #fff; }
.insul-auth-brand__partner-link img { display: block; width: 230px; max-width: 100%; height: auto; filter: brightness(0) invert(1); }
.insul-auth-brand__partner-link span { font-size: .9rem; }
.insul-auth-form { display: flex; flex: 1; flex-direction: column; justify-content: center; min-width: 0; padding: 2.5rem 1.5rem; }
.insul-auth-mobile-logo { display: none; width: 170px; max-width: 100%; height: auto; margin: 0 auto 1.5rem; }
.insul-auth-form > .container-fluid { width: 100%; max-width: 560px; }
.insul-auth-form > .container-fluid .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
body.admin-user-auth-layout .login-panel { width: 100%; max-width: 450px; border-color: var(--insul-border); box-shadow: 0 12px 36px rgba(21,42,93,.07); }
body.admin-user-auth-layout .login-panel__title { color: var(--insul-text); letter-spacing: 0; }
body.admin-user-auth-layout .login-panel__icon { color: var(--insul-primary); background: var(--insul-soft); border-color: var(--insul-border); }
body.admin-user-auth-layout .login-panel .form-control:focus { border-color: var(--insul-primary); box-shadow: 0 0 0 .2rem var(--insul-focus); }
.insul-auth-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.25rem; margin-top: 1.75rem; color: var(--insul-muted); font-size: .8rem; }
.insul-auth-footer img { display: block; width: 110px; max-width: 100%; height: auto; }
.insul-auth-footer__partner { display: none; }

/* A validacao continua visivel mesmo nos formularios com CSS especifico. */
body.admin-user-module .form-control.is-invalid:focus,
body.admin-user-module .custom-select.is-invalid:focus,
body.admin-user-module .was-validated .form-control:invalid:focus,
body.admin-user-module .was-validated .custom-select:invalid:focus {
  border-color: #e74a3b; box-shadow: 0 0 0 .2rem rgba(231, 74, 59, .2);
}
body.admin-user-module .form-control.is-valid:focus,
body.admin-user-module .custom-select.is-valid:focus,
body.admin-user-module .was-validated .form-control:valid:focus,
body.admin-user-module .was-validated .custom-select:valid:focus {
  border-color: #1cc88a; box-shadow: 0 0 0 .2rem rgba(28, 200, 138, .2);
}

@media (max-width: 767.98px) {
  .sidebar .insul-brand-logo { display: none; }
  .sidebar .insul-brand-symbol { display: block; }
  .insul-auth-brand { display: none; }
  .insul-auth-form { padding: 1.5rem .75rem; }
  .insul-auth-mobile-logo { display: block; }
  .insul-auth-footer__partner { display: inline-flex; flex-direction: column; align-items: center; gap: .35rem; }
  .insul-auth-form > .container-fluid { padding: 0 .5rem; }
  body div.dataTables_wrapper div.dataTables_filter input { display: block; width: 100%; margin: .4rem 0 0; }
  body div.dataTables_wrapper div.dataTables_filter label { display: block; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .card-filter, .btn-project-standard, .modal.fade .modal-dialog, .collapsing { transition: none; }
  .animated--grow-in, .animated--fade-in { animation: none; }
}
