/*
 * EHS Guard - tema visual compartilhado
 * Regras deliberadamente limitadas a tela para preservar relatórios e fichas impressas.
 */
@media screen {
  :root {
    --ehs-primary: #008f91;
    --ehs-primary-dark: #007779;
    --ehs-primary-soft: #ccfbf1;
    --ehs-accent: #f59e0b;
    --ehs-ink: #17342f;
    --ehs-muted: #667275;
    --ehs-surface: #ffffff;
    --ehs-canvas: #f2f7f6;
    --ehs-border: #d9e7e4;
    --ehs-radius: 7px;
    --ehs-shadow:none;
    --ehs-shadow-hover:none;
    --bs-primary: var(--ehs-primary);
    --bs-primary-rgb: 0, 143, 145;
    --bs-link-color: var(--ehs-primary);
    --bs-link-hover-color: var(--ehs-primary-dark);
    --bs-border-color: var(--ehs-border);
    --bs-body-color: var(--ehs-ink);
  }

  html {
    min-height: 100%;
    scroll-behavior: smooth;
  }

  body {
    min-height: 100vh;
    color: var(--ehs-ink);
    background:var(--ehs-canvas);
    font-family:Arial,sans-serif;
    letter-spacing: -.01em;
  }

  ::selection {
    color: #fff;
    background: var(--ehs-primary);
  }

  a {
    color: var(--ehs-primary);
    text-underline-offset: .18em;
  }

  a:hover { color: var(--ehs-primary-dark); }

  h1, h2, h3, h4, h5, h6,
  .h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--ehs-ink);
    font-weight: 700;
    letter-spacing: -.025em;
  }

  h1, .h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); }
  h2, .h2 { font-size: clamp(1.5rem, 3vw, 2.05rem); }
  h3, .h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }

  .text-muted,
  .text-secondary { color: var(--ehs-muted) !important; }

  /* O cabeçalho e o menu lateral preservam o visual legado. */
  .navbar.fixed-top,
  #sidebarMenu {
    font-family: var(--bs-body-font-family);
    letter-spacing: normal;
  }

  .navbar.fixed-top .btn {
    min-height: 0;
    padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
    font-weight: var(--bs-btn-font-weight);
    letter-spacing: normal;
    border-radius: var(--bs-btn-border-radius);
    box-shadow:none;
    transform: none;
  }

  .navbar.fixed-top .btn:hover,
  .navbar.fixed-top .btn:active {
    box-shadow:none;
    transform: none;
  }

  #sidebarMenu .offcanvas-title {
    color: inherit;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: normal;
  }

  body > main,
  main.pt-5 {
    min-height: calc(100vh - 142px);
  }

  main > .container-fluid,
  main > .container,
  body > .container-fluid,
  body > .container {
    padding-right: clamp(1rem, 2.2vw, 2rem);
    padding-left: clamp(1rem, 2.2vw, 2rem);
  }

  /* Cabeçalhos de página */
  .container-fluid > .d-flex.align-items-center.justify-content-between,
  .container > .d-flex.align-items-center.justify-content-between {
    position: relative;
    padding: .35rem 0 .85rem;
  }

  .container-fluid > .d-flex.align-items-center.justify-content-between::after,
  .container > .d-flex.align-items-center.justify-content-between::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    content: "";
    background:var(--ehs-canvas);
  }

  /* Cards e agrupamentos */
  .card {
    overflow: hidden;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--ehs-border);
    border-radius: var(--ehs-radius);
    box-shadow:none;
  }

  .card-header {
    padding: .9rem 1.1rem;
    color: var(--ehs-ink);
    font-weight: 700;
    background:var(--ehs-canvas);
    border-bottom: 1px solid var(--ehs-border);
  }

  .card-body { padding: clamp(1rem, 2vw, 1.35rem); }

  .card-footer {
    background: #f8fbfa;
    border-top-color: var(--ehs-border);
  }

  .list-group-item {
    background: rgba(255,255,255,.95);
    border-color: var(--ehs-border);
  }

  .accordion-item {
    overflow: hidden;
    border-color: var(--ehs-border);
    border-radius: 12px !important;
    box-shadow:none;
  }

  .accordion-button:not(.collapsed) {
    color: var(--ehs-primary-dark);
    background: var(--ehs-primary-soft);
    box-shadow:none;
  }

  /* Filtros e formulários */
  .container-fluid > form.row,
  .container > form.row,
  main > form.row {
    padding: 1rem;
    background: rgba(255,255,255,.94);
    border: 1px solid var(--ehs-border);
    border-radius: var(--ehs-radius);
    box-shadow:none;
  }

  .form-label {
    margin-bottom: .38rem;
    color: #345b55;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .015em;
  }

  .form-control,
  .form-select,
  .input-group-text {
    min-height: 42px;
    color: var(--ehs-ink);
    border-color: #cbded9;
    border-radius:7px;
  }

  .form-control,
  .form-select { background-color: rgba(255,255,255,.97); }

  .form-control::placeholder { color: #94a3b8; }

  .form-control:focus,
  .form-select:focus,
  .form-check-input:focus {
    border-color: #2a9d90;
    box-shadow: 0 0 0 .22rem rgba(15,118,110,.14);
  }

  .form-check-input:checked {
    background-color: var(--ehs-primary);
    border-color: var(--ehs-primary);
  }

  .input-group > .form-control:not(:first-child),
  .input-group > .form-select:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }

  .input-group > .form-control:not(:last-child),
  .input-group > .form-select:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }

  .input-group-text {
    color: var(--ehs-primary-dark);
    background: #eef8f6;
  }

  /* Botões */
  .btn {
    --bs-btn-border-radius:7px;
    min-height: 40px;
    padding: .48rem .85rem;
    font-weight: 650;
    letter-spacing: 0;
    box-shadow:none;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
  }

  .btn:hover {
    transform: translateY(-1px);
    box-shadow:none;
  }

  .btn:active { transform: translateY(0); }

  .btn-primary {
    --bs-btn-bg: var(--ehs-primary);
    --bs-btn-border-color: var(--ehs-primary);
    --bs-btn-hover-bg: var(--ehs-primary-dark);
    --bs-btn-hover-border-color: var(--ehs-primary-dark);
    --bs-btn-active-bg: #0b514b;
    --bs-btn-active-border-color: #0b514b;
    --bs-btn-disabled-bg: #6ba9a2;
    --bs-btn-disabled-border-color: #6ba9a2;
  }

  .btn-outline-primary {
    --bs-btn-color: var(--ehs-primary);
    --bs-btn-border-color: #6fb5ad;
    --bs-btn-hover-bg: var(--ehs-primary);
    --bs-btn-hover-border-color: var(--ehs-primary);
    --bs-btn-active-bg: var(--ehs-primary-dark);
    --bs-btn-active-border-color: var(--ehs-primary-dark);
  }

  .btn-light,
  .btn-outline-secondary {
    --bs-btn-color: #425f5a;
    --bs-btn-border-color: #bed2cd;
    --bs-btn-hover-color: var(--ehs-primary-dark);
    --bs-btn-hover-bg: #edf7f5;
    --bs-btn-hover-border-color: #8cbdb7;
  }

  .btn-sm {
    min-height: 34px;
    padding: .34rem .65rem;
    border-radius: 9px;
  }

  /* Tabelas */
  .table-responsive {
    background: var(--ehs-surface);
    border: 1px solid var(--ehs-border);
    border-radius: var(--ehs-radius);
    box-shadow:none;
  }

  .table-responsive > .table { margin-bottom: 0; }

  .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ehs-ink);
    --bs-table-border-color: #e0ebe8;
    margin-bottom: 1rem;
    vertical-align: middle;
  }

  .table > thead > tr > th {
    padding: .82rem .72rem;
    color: #28524c;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
    background: #e9f5f2;
    border-bottom: 1px solid #cfe3de;
    white-space: nowrap;
  }

  .table > tbody > tr > td { padding: .76rem .72rem; }

  .table-hover > tbody > tr:hover > * {
    --bs-table-hover-bg: #f0f9f7;
    color: var(--ehs-ink);
  }

  .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-striped-bg: rgba(15,118,110,.025);
  }

  /* Modais, avisos e navegação auxiliar */
  .modal-content {
    overflow: hidden;
    border: 1px solid rgba(15,118,110,.18);
    border-radius:7px;
    box-shadow:none;
  }

  .modal-header {
    padding: 1rem 1.2rem;
    background:var(--ehs-canvas);
    border-bottom-color: var(--ehs-border);
  }

  .modal-footer {
    padding: .85rem 1.2rem;
    background: #f8fbfa;
    border-top-color: var(--ehs-border);
  }

  .modal-header.bg-primary,
  .modal-header.bg-success,
  .modal-header.bg-dark {
    color: #fff;
    background:var(--ehs-canvas);
  }

  .alert {
    border-width: 0 0 0 4px;
    border-radius:7px;
    box-shadow:none;
  }

  .badge {
    padding: .43em .68em;
    font-weight: 700;
    border-radius: 999px;
  }

  .pagination {
    gap: .25rem;
    flex-wrap: wrap;
  }

  .page-link {
    min-width: 38px;
    color: var(--ehs-primary);
    text-align: center;
    border-color: var(--ehs-border);
    border-radius: 9px !important;
  }

  .page-item.active .page-link {
    background: var(--ehs-primary);
    border-color: var(--ehs-primary);
    box-shadow:none;
  }

  .nav-tabs {
    gap: .35rem;
    border-bottom-color: var(--ehs-border);
  }

  .nav-tabs .nav-link {
    color: #55706b;
    font-weight: 650;
    border-radius: 10px 10px 0 0;
  }

  .nav-tabs .nav-link.active {
    color: var(--ehs-primary-dark);
    background: #fff;
    border-color: var(--ehs-border) var(--ehs-border) #fff;
  }

  /* Rodapé */
  body > footer,
  main + footer {
    color: #667c77 !important;
    background: rgba(255,255,255,.68) !important;
    border-top: 1px solid var(--ehs-border);
    backdrop-filter: blur(10px);
  }

  footer img {
    width: auto;
    max-width: 130px;
    height: 24px;
    object-fit: contain;
    opacity: .72;
  }

  #btnTop {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--ehs-primary);
    background: #fff;
    border: 1px solid var(--ehs-border);
    border-radius: 50%;
    box-shadow:none;
  }

  #btnTop i { color: var(--ehs-primary) !important; }

  /* Scrollbars discretas */
  * { scrollbar-color: #8bbab4 #edf4f2; scrollbar-width: thin; }
  *::-webkit-scrollbar { width: 10px; height: 10px; }
  *::-webkit-scrollbar-track { background: #edf4f2; }
  *::-webkit-scrollbar-thumb {
    background: #8bbab4;
    border: 2px solid #edf4f2;
    border-radius: 999px;
  }

  @media (max-width: 767.98px) {
    body { background: #f2f7f6; }

    main > .container-fluid,
    main > .container,
    body > .container-fluid,
    body > .container {
      padding-right: .85rem;
      padding-left: .85rem;
    }

    .container-fluid > form.row,
    .container > form.row,
    main > form.row {
      margin-right: 0;
      margin-left: 0;
      padding: .85rem;
    }

    .card { border-radius:7px; }
    .card-body { padding: .95rem; }
    .modal-dialog { margin: .65rem; }
    .btn:not(.btn-sm) { min-height: 44px; }
    .navbar.fixed-top .btn { min-height: 0; }
    .table { font-size: .86rem; }
    .table > thead > tr > th,
    .table > tbody > tr > td { padding: .67rem .58rem; }

    #btnTop {
      right: 12px !important;
      bottom: 10px !important;
    }
  }

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