/* Methal Agriculture: azul institucional e logos do site, com semantica do ADM preservada. */
:root {
  --methal-primary: #1b3a5c;
  --methal-primary-dark: #0f2540;
  --methal-text: #232e5a;
  --methal-secondary: #4a7ba7;
  --methal-muted: #626d7a;
  --methal-background: #f5f5f5;
  --methal-surface: #fff;
  --methal-soft: #edf2f7;
  --methal-border: #dce3ea;
  --methal-focus: rgba(27, 58, 92, .22);
  --primary: #1b3a5c;
}

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

#wrapper, #content-wrapper, #content, #content > .container-fluid,
#content .row > .col, #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%; box-sizing: border-box; }
.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(--methal-primary); }
a:hover { color: var(--methal-primary-dark); }
.text-primary { color: var(--methal-primary) !important; }
.border-left-primary { border-left-color: var(--methal-primary) !important; }
.border-bottom-primary { border-bottom-color: var(--methal-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(--methal-primary) !important;
  border-color: var(--methal-primary) !important;
}
.page-link { color: var(--methal-primary); }
.bg-gradient-primary {
  background-color: var(--methal-primary);
  background-image: linear-gradient(180deg, #1b3a5c 10%, #0f2540 100%);
}
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--methal-primary);
  border-color: var(--methal-primary);
}

.sidebar .sidebar-brand { height: auto; min-height: 5rem; padding: 1rem .75rem; }
.methal-brand-logo { width: 146px; max-width: 100%; height: auto; }
.methal-brand-symbol { display: none; width: 42px; height: 42px; object-fit: contain; filter: brightness(0) invert(1); }
.sidebar.toggled .methal-brand-logo { display: none; }
.sidebar.toggled .methal-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(--methal-primary);
  background-color: var(--methal-soft);
}

body.admin-user-module {
  --admin-user-primary: #1b3a5c;
  --admin-user-primary-soft: #edf2f7;
  --admin-user-border: #dce3ea;
  --admin-user-text: #30364a;
  --admin-user-muted: #626d7a;
}
body.admin-user-module .admin-user-page-header { background: linear-gradient(135deg, #fff, #edf2f7); }
body.admin-user-module .admin-user-page-header__icon { border-color: var(--methal-border); }
body.admin-user-module .topbar-page-heading-accent { background: var(--methal-primary); box-shadow: none; }
.card { border-color: var(--methal-border); }
.card-header, .table thead th { background-color: #f0f3f6; border-color: var(--methal-border); }

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

/* O clique conserva o foco funcional, sem deixar o botao com aparencia de hover. */
.btn-outline-primary, .btn-project-standard.btn-primary { --methal-button-tone: #1b3a5c; }
.btn-outline-secondary, .btn-project-standard.btn-secondary { --methal-button-tone: #6c757d; }
.btn-outline-success, .btn-project-standard.btn-success { --methal-button-tone: var(--success, #28a745); }
.btn-outline-danger, .btn-project-standard.btn-danger { --methal-button-tone: var(--danger, #dc3545); }
.btn-outline-warning, .btn-project-standard.btn-warning { --methal-button-tone: #a56a00; }
.btn-outline-info, .btn-project-standard.btn-info { --methal-button-tone: var(--info, #17a2b8); }
.btn-outline-dark, .btn-project-standard.btn-dark { --methal-button-tone: #5a5c69; }
.btn-outline-light, .btn-project-standard.btn-light { --methal-button-tone: #6c757d; }
@supports selector(:focus-visible) {
  body.admin-user-module .btn-primary:not(.active):not(:hover):not(:active):focus:not(: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(--methal-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(--methal-primary);
  box-shadow: 0 0 0 .2rem var(--methal-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: var(--danger, #dc3545);
  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: var(--success, #28a745);
  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(--methal-primary);
  outline-offset: 3px;
}
body .bootstrap-select > .dropdown-toggle:focus-visible { outline: 2px solid var(--methal-primary) !important; }
.sidebar :is(a, button):focus-visible, .methal-auth-brand a:focus-visible { outline-color: #fff; }
.nav-tabs .nav-link.active { color: var(--methal-primary); font-weight: 700; }
.card-filter.border-left-primary { --card-filter-color: #1b3a5c; }
.card-filter:hover, .card-filter:focus { transform: none; transition: box-shadow .15s ease, background-color .15s ease; }
.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(--methal-border); border-radius: .65rem; }
.modal-header { background: #f0f3f6; border-color: var(--methal-border); }
.modal-title { color: var(--methal-text); }
.modal .close { opacity: .8; }

body.admin-user-auth-layout { height: auto; min-height: 100vh; overflow-x: visible; background: var(--methal-background); }
.methal-auth-shell { display: flex; min-height: 100vh; min-height: 100svh; }
.methal-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, #1b3a5c, #0f2540);
}
.methal-auth-brand__content { max-width: 28rem; }
.methal-auth-brand__logo { width: 300px; max-width: 100%; height: auto; margin-bottom: 2rem; }
.methal-auth-brand__label { color: rgba(255,255,255,.85); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.methal-auth-brand__name { color: #fff; font-size: 2rem; font-weight: 700; line-height: 1.3; }
.methal-auth-brand__site { display: inline-block; margin-top: 1rem; }
.methal-auth-brand__site, .methal-auth-brand__site:hover { color: #fff; }
.methal-auth-form { display: flex; flex: 1; flex-direction: column; justify-content: center; min-width: 0; padding: 2.5rem 1.5rem; }
.methal-auth-mobile-logo { display: none; width: 170px; max-width: 100%; height: auto; margin: 0 auto 1.5rem; }
.methal-auth-form > .container-fluid { width: 100%; max-width: 560px; }
.methal-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(--methal-border); box-shadow: 0 12px 36px rgba(27,58,92,.09); }
body.admin-user-auth-layout .login-panel__title { color: var(--methal-text); letter-spacing: 0; }
body.admin-user-auth-layout .login-panel__icon { color: var(--methal-primary); background: var(--methal-soft); border-color: var(--methal-border); }
body.admin-user-auth-layout .login-panel .form-control:focus { border-color: var(--methal-primary); box-shadow: 0 0 0 .2rem var(--methal-focus); }
.methal-auth-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.25rem; margin-top: 1.75rem; color: var(--methal-muted); font-size: .8rem; }
.methal-auth-footer img { display: block; width: 110px; max-width: 100%; height: auto; }

/* 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: var(--danger, #dc3545); 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: var(--success, #28a745); box-shadow: 0 0 0 .2rem rgba(28, 200, 138, .2);
}

@media (max-width: 767.98px) {
  .topbar.navbar-expand { flex-wrap: wrap; height: auto; min-height: 4.375rem; }
  body .topbar .navbar-nav .nav-item .nav-link { width: 2.75rem; padding-left: .375rem; padding-right: .375rem; }
  .topbar > h5 { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .topbar #sidebarToggleTop { margin-right: .5rem !important; }
  body.admin-user-module .nav-tabs { flex-wrap: wrap; overflow: visible; }
  body.admin-user-module .nav-tabs .nav-link { white-space: normal; }
  .sidebar .methal-brand-logo { display: none; }
  .sidebar .methal-brand-symbol { display: block; }
  .methal-auth-brand { display: none; }
  .methal-auth-form { padding: 1.5rem .75rem; }
  .methal-auth-mobile-logo { display: block; }
  .methal-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, .card-filter:hover, .card-filter:focus,
  .btn-project-standard, .modal.fade .modal-dialog, .collapsing { transition: none; }
  .animated--grow-in, .animated--fade-in { animation: none; }
}
.methal-auth-footer__site { display: none; }
.app-table-actions :is(a, button) {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.75rem; min-height: 1.75rem; padding: .15rem;
  color: #6c757d !important; background: transparent !important;
  border: 0 !important; border-radius: 0; box-shadow: none !important;
  vertical-align: middle; text-decoration: none;
}
.app-table-actions :is(a, button):hover { color: #495057 !important; }
.app-table-actions :is(i, svg) { pointer-events: none; }
.app-table-action-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.btn-outline-primary { --methal-button-tone: var(--methal-primary); }
body.admin-user-module .btn-primary { --methal-button-tone: var(--methal-primary); }
h1, h2, h3, .h1, .h2, .h3, .modal-title { color: var(--methal-text); }
body.admin-user-module .nav-tabs .nav-link.active { color: var(--methal-primary); }
.modal-footer { border-color: var(--methal-border); }
/* A largura insuficiente e detectada pelo helper; campos continuam visiveis. */
@media (max-width: 767.98px) {
  table.dataTable.app-table-compact { display: block; border: 0; }
  table.dataTable.app-table-compact thead {
    display: block; width: 100%; margin-bottom: .75rem;
  }
  table.dataTable.app-table-compact thead tr { display: flex; flex-wrap: wrap; gap: .35rem; }
  table.dataTable.app-table-compact thead th {
    display: block; width: auto !important; max-width: 100%; padding: .4rem 1.4rem .4rem .5rem;
    border: 1px solid var(--methal-border); border-radius: .25rem; font-size: .75rem;
  }
  table.dataTable.app-table-compact thead th.sorting_disabled { padding-right: .5rem; }
  .summary-card .card-body { padding: .75rem; flex-wrap: wrap; gap: .25rem; }
  .summary-card .card-body > div { min-width: 0; overflow-wrap: normal; }
  .summary-card .card-body > i { font-size: 1.25rem; margin-left: .4rem; flex-shrink: 0; }
  .summary-card .card-body > i + div { margin-left: .4rem; }
  table.dataTable.app-table-compact tbody { display: block; width: 100%; }
  table.dataTable.app-table-compact tbody tr {
    display: block; margin-bottom: .75rem; border: 1px solid var(--methal-border);
    border-radius: .4rem; background: var(--methal-surface);
  }
  table.dataTable.app-table-compact tbody td {
    display: block; width: auto !important; padding: .5rem .65rem;
    border: 0; white-space: normal; overflow-wrap: anywhere;
  }
  table.dataTable.app-table-compact tbody td[data-column-label]::before {
    content: attr(data-column-label); display: block; margin-bottom: .15rem;
    color: var(--methal-muted); font-size: .75rem; font-weight: 700;
  }
  table.dataTable.app-table-compact tbody td.app-table-actions { padding-top: .25rem; }
}
@media (max-width: 767.98px) {
  .methal-auth-footer__site { display: inline-block; }
  .methal-auth-footer { flex-direction: column; }
}
