/* LWM / Valdô Placas: camada de marca após os estilos base.
 * Laranja institucional #ff7f27 preservado; tons escuros garantem contraste. */
:root {
  --lwm-orange: #ff7f27;
  --lwm-primary: #b94e08;
  --lwm-primary-dark: #923d06;
  --lwm-text: #342c27;
  --lwm-muted: #756b64;
  --lwm-background: #faf8f5;
  --lwm-surface: #fff;
  --lwm-soft: #fff0e5;
  --lwm-border: #eadfd5;
  --lwm-focus: rgba(185, 78, 8, .2);
  --primary: #b94e08;
}

body, #wrapper #content-wrapper {
  background-color: var(--lwm-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(--lwm-primary); }
a:hover { color: var(--lwm-primary-dark); }
.text-primary { color: var(--lwm-primary) !important; }
.border-left-primary { border-left-color: var(--lwm-primary) !important; }
.border-bottom-primary { border-bottom-color: var(--lwm-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(--lwm-primary) !important;
  border-color: var(--lwm-primary) !important;
}
.page-link { color: var(--lwm-primary); }
.bg-gradient-primary {
  background-color: var(--lwm-primary);
  background-image: linear-gradient(180deg, #a94608 0%, #783305 100%);
  border-top: 4px solid var(--lwm-orange);
}
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--lwm-primary);
  border-color: var(--lwm-primary);
}

.sidebar .sidebar-brand { height: auto; min-height: 5rem; padding: 1rem .75rem; }
.lwm-brand-logo { width: 146px; max-width: 100%; height: auto; }
.lwm-brand-symbol { display: none; width: 56px; max-width: 100%; aspect-ratio: 1488 / 453; overflow: hidden; }
.lwm-brand-symbol img { display: block; width: 100%; height: auto; }
.sidebar.toggled .lwm-brand-logo { display: none; }
.sidebar.toggled .lwm-brand-symbol { display: block; }
.sidebar.toggled .sidebar-heading { padding-left: .35rem; padding-right: .35rem; overflow-wrap: anywhere; }
.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(--lwm-primary);
  background-color: var(--lwm-soft);
}

body.admin-user-module {
  --admin-user-primary: #b94e08;
  --admin-user-primary-soft: #fff0e5;
  --admin-user-border: #eadfd5;
  --admin-user-text: #30364a;
  --admin-user-muted: #756b64;
}
body.admin-user-module .admin-user-page-header { background: linear-gradient(135deg, #fff, #fff0e5); }
body.admin-user-module .admin-user-page-header__icon { border-color: var(--lwm-border); }
body.admin-user-module .topbar-page-heading-accent { background: var(--lwm-primary); box-shadow: none; }
.card { border-color: var(--lwm-border); }
.card-header, .table thead th { background-color: #faf5ef; border-color: var(--lwm-border); }

.btn-primary, .btn-primary:not(:disabled):not(.disabled):active {
  color: #fff; background: var(--lwm-primary); border-color: var(--lwm-primary);
}
.btn-primary:hover { background: var(--lwm-primary-dark); border-color: var(--lwm-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(--lwm-primary); background: transparent; border-color: var(--lwm-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(--lwm-primary); border-color: var(--lwm-primary);
}

/* O clique conserva o foco funcional, sem deixar o botao com aparencia de hover. */
.btn-outline-primary, .btn-project-standard.btn-primary { --lwm-button-tone: #b94e08; }
.btn-outline-secondary, .btn-project-standard.btn-secondary { --lwm-button-tone: #6c757d; }
.btn-outline-success, .btn-project-standard.btn-success { --lwm-button-tone: #1cc88a; }
.btn-outline-danger, .btn-project-standard.btn-danger { --lwm-button-tone: #e74a3b; }
.btn-outline-warning, .btn-project-standard.btn-warning { --lwm-button-tone: #a56a00; }
.btn-outline-info, .btn-project-standard.btn-info { --lwm-button-tone: #36b9cc; }
.btn-outline-dark, .btn-project-standard.btn-dark { --lwm-button-tone: #5a5c69; }
.btn-outline-light, .btn-project-standard.btn-light { --lwm-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(--lwm-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(--lwm-primary);
  box-shadow: 0 0 0 .2rem var(--lwm-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(--lwm-primary);
  outline-offset: 3px;
}
body .bootstrap-select > .dropdown-toggle:focus-visible { outline: 2px solid var(--lwm-primary) !important; }
.sidebar :is(a, button):focus-visible, .lwm-auth-brand a:focus-visible { outline-color: #fff; }
.nav-tabs .nav-link.active { color: var(--lwm-primary); font-weight: 700; }
.card-filter.border-left-primary { --card-filter-color: #b94e08; }
.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(--lwm-border); border-radius: .65rem; }
.modal-header { background: #faf5ef; border-color: var(--lwm-border); }
.modal-title { color: var(--lwm-text); }
.modal .close { opacity: .8; }

body.admin-user-auth-layout { height: auto; min-height: 100vh; overflow-x: visible; background: var(--lwm-background); }
.lwm-auth-shell { display: flex; min-height: 100vh; min-height: 100svh; }
.lwm-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(155deg, #382c23 0%, #5c321a 60%, #7d380b 100%);
  border-top: 6px solid var(--lwm-orange);
}
.lwm-auth-brand__content { max-width: 28rem; }
.lwm-auth-brand__logo { width: 300px; max-width: 100%; height: auto; margin-bottom: 2rem; }
.lwm-auth-brand__label { color: #ffb57e; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.lwm-auth-brand__name { color: #fff; font-size: 2rem; font-weight: 700; line-height: 1.3; }
.lwm-auth-brand__site { display: inline-block; margin-top: 1rem; }
.lwm-auth-brand__site, .lwm-auth-brand__site:hover { color: #fff; }
.lwm-auth-brand__partner { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.25); }
.lwm-auth-brand__partner-link { display: inline-flex; flex-direction: column; align-items: center; gap: .75rem; max-width: 100%; color: #fff; }
.lwm-auth-brand__partner-link:hover { color: #fff; }
.lwm-auth-brand__partner-link img { display: block; width: 280px; max-width: 100%; height: auto; filter: brightness(0) invert(1); }
.lwm-auth-brand__partner-link span { font-size: .9rem; }
.lwm-auth-form { display: flex; flex: 1; flex-direction: column; justify-content: center; min-width: 0; padding: 2.5rem 1.5rem; }
.lwm-auth-mobile-logo { display: none; width: 170px; max-width: 100%; height: auto; margin: 0 auto 1.5rem; }
.lwm-auth-form > .container-fluid { width: 100%; max-width: 560px; }
.lwm-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(--lwm-border); box-shadow: 0 12px 36px rgba(68,43,26,.08); }
body.admin-user-auth-layout .login-panel__title { color: var(--lwm-text); letter-spacing: 0; }
body.admin-user-auth-layout .login-panel__icon { color: var(--lwm-primary); background: var(--lwm-soft); border-color: var(--lwm-border); }
body.admin-user-auth-layout .login-panel .form-control:focus { border-color: var(--lwm-primary); box-shadow: 0 0 0 .2rem var(--lwm-focus); }
.lwm-auth-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.25rem; margin-top: 1.75rem; color: var(--lwm-muted); font-size: .8rem; }
.lwm-auth-footer img { display: block; width: 180px; max-width: 100%; height: auto; }
.lwm-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 .lwm-brand-logo { display: none; }
  .sidebar .lwm-brand-symbol { display: block; }
  .lwm-auth-brand { display: none; }
  .lwm-auth-form { padding: 1.5rem .75rem; }
  .lwm-auth-mobile-logo { display: block; }
  .lwm-auth-footer__partner { display: inline-flex; flex-direction: column; align-items: center; gap: .35rem; }
  .lwm-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; }
}

.lwm-auth-footer__site { display: none; }
.lwm-auth-form, .lwm-auth-brand { font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body.admin-user-auth .lwm-auth-brand a,
body.admin-user-auth .lwm-auth-brand a:hover { color: #fff; }
body.admin-user-auth a,
body.admin-user-auth .btn-outline-primary { color: var(--lwm-primary); border-color: var(--lwm-primary); }
body.admin-user-auth .btn-outline-primary:hover,
body.admin-user-auth .btn-outline-primary:focus-visible { color: #fff; background-color: var(--lwm-primary); }
#content h1, #content h2, #content h3, .card-header { color: var(--lwm-text); }
body.admin-user-module .nav-tabs .nav-link.active { color: var(--lwm-primary); }
.lwm-auth-brand__site:hover, .lwm-auth-brand__partner-link:hover { text-decoration: underline; }
.card-filter { transition: box-shadow .15s ease, background-color .15s ease; }
body .card-filter:focus-visible, body .table-action-icon:focus-visible { outline: 2px solid var(--lwm-primary); outline-offset: 3px; }
.table .table-action-icon { min-width: 1.75rem; min-height: 1.75rem; padding: .15rem; color: #6c757d; }
.dataTables_wrapper th, .dataTables_wrapper td { white-space: normal; }
.dataTables_wrapper .app-table-actions { white-space: normal; }
.dataTables_wrapper .dataTables_paginate { max-width: 100%; }
.dataTables_wrapper .dataTables_paginate .paginate_button { white-space: normal; }
.dataTables_wrapper .dt-layout-row, .dataTables_wrapper .dt-layout-cell { min-width: 0; max-width: 100%; flex-wrap: wrap; }
/* O login legado usava sucesso como cor de marca: restaurar a semântica. */
body.admin-user-auth .btn-success { color: #fff; background: #1cc88a; border-color: #1cc88a; filter: none; }
body.admin-user-auth .btn-success:hover { background: #17a673; border-color: #17a673; }
@media (max-width: 767.98px) {
  .lwm-auth-footer__site { display: inline-flex; flex-direction: column; align-items: center; gap: .35rem; }
  .lwm-auth-footer { flex-direction: column; gap: 1.1rem; }
  #content > .container-fluid { padding-left: .75rem; padding-right: .75rem; }
  .topbar { height: auto; min-height: 4.375rem; flex-wrap: wrap; padding: .5rem; }
  .topbar .navbar-nav { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  .topbar .navbar-nav .nav-link { padding: .5rem !important; }
  body.admin-user-module .topbar-page-heading { max-width: calc(100% - 3rem); }
  body.admin-user-module .nav-tabs { flex-wrap: wrap; overflow: visible; }
  body.admin-user-module .nav-tabs .nav-link { white-space: normal; }
  body .card-body:has(.dataTables_wrapper) { padding: .75rem; }
  body.admin-user-module .card-body:has(.dataTables_wrapper) { padding: .75rem; }
  body .dataTables_wrapper table.table.dataTable :is(th, td),
  body.admin-user-module .dataTables_wrapper table.table.dataTable :is(th, td) { padding: .4rem .35rem; }
  body .dataTables_wrapper table.dataTable thead :is(.sorting, .sorting_asc, .sorting_desc) { padding-right: 1.2rem; }
}
