* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  text-decoration: none;
  list-style: none;
}

*:hover {
  text-decoration: none;
}

body {
  padding-top: 80px;
  font-family: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans",
    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
    "Noto Color Emoji" !important;
}

body h1,
p,
a,
span,
div,
label,
input,
button {
  font-family: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans",
    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
    "Noto Color Emoji" !important;
}

/*=====================================*/

.app-header {
  display: flex;
  justify-content: space-between;
  align-items: center;

  height: 75px;
  width: 100%;
  padding: 0 16px;

  background-color: #b13f69;
  border-bottom: 5px solid #14b1c6;

  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
}

.app-header .logo {
  height: 40px;
}

.app-header .logo img {
  height: 100%;
}

.app-header .menu-button {
  background: none;
  border: none;
  cursor: pointer;
}

.app-header .menu-button img {
  height: 20px;
  width: 25px;
}

/*=====================================*/

.app-menu {
  height: 100dvh;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;

  background-color: #00000000;
  transform: translateX(100%);

  transition: background-color 0.2s ease-in-out;
}

.app-menu.active {
  background-color: #00000033;
  transform: translateX(0);
}

.app-menu .menu-content {
  display: flex;
  flex-direction: column;
  padding: 20px;
  background-color: white;
  gap: 15px;

  min-width: 270px;
  width: 70%;
  max-width: 400px;
  height: 100dvh;
  max-height: 100dvh;

  position: fixed;
  right: 0;
  top: 0;
  z-index: 1000;
  transform: translateX(100%);
  transition: 0.2s ease-in-out;
}

.app-menu.active:not(.closing) .menu-content {
  transform: translateX(0);
}

.app-menu .menu-content header {
  display: flex;
  justify-content: space-between;
  padding-bottom: 5px;
  border-bottom: 2px solid #ccc;
}

.app-menu .menu-content header .title {
  font-size: 1.5rem;
  font-weight: bold;
}

.app-menu .menu-content header .close-menu-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: none;
  background: none;
  cursor: pointer;
}

.app-menu .menu-content header .close-menu-button img {
  display: block;
  height: 20px;
  width: 20px;
}

.app-menu .menu-content menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  height: 100%;
}

.app-menu .menu-content menu li {
  width: 100%;
}

.app-menu .menu-content menu :is(a, button) {
  display: block;
  padding: 7px 14px;
  width: 100%;
  color: #333;
  transition: 0.2s ease-in-out;
  border: none;
  background: none;
  text-align: left;
  border-radius: 5px;
}

.app-menu
  .menu-content
  menu
  *:is(a.active, a:hover, button.active, button:hover) {
  font-weight: bold;
  background-color: #b13f69;
  color: #fff;
  border-left: 1px solid #ccc;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  text-decoration: none;
  cursor: default;
}

.app-menu .menu-content menu :is(a, button):hover:not(.active) {
  color: #b13f69;
  background-color: #fff;
  cursor: pointer;
}

.app-menu .menu-content menu li.logout {
  margin-top: auto;
}

.app-menu .menu-content menu li.logout :is(a, button) {
  border: 2px solid #ff7979;
  color: #ff7979;
}

.app-menu .menu-content menu li.logout :is(a, button):hover {
  border: 2px solid #ff7979;
  background-color: #ff7979;
  color: #fff;
}

/*=====================================*/

/* :is(.mat-form-field-infix, .mat-input-wrapper.mat-form-field-wrapper) {
  padding: 0;
  border: none;
}

.mat-select {
  border: 1px solid #ccc;
  padding: 7px 10px;
  border-radius: 5px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

:is(
    .mat-form-field-underline,
    .mat-form-field-label-wrapper.mat-input-placeholder-wrapper.mat-form-field-placeholder-wrapper
  ) {
  display: none;
} */

/*=====================================*/

body.modal-open {
  padding-right: 0 !important;
}

.modal {
  background-color: #00000044 !important;
  padding: 10px !important;
  height: 100dvh;
  width: 100%;
}

.modal .modal-dialog {
  margin: 0;
  max-height: calc(100dvh - 20px);
}

.modal .modal-dialog .modal-content {
  border: none;
  border-radius: 7px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  max-height: calc(100dvh - 20px);
}

.modal .modal-dialog .modal-content .modal-header {
  border-bottom: 1px solid #ccc;
  padding: 15px !important;
}

.modal .modal-dialog .modal-content .modal-body {
  height: 100%;
  max-height: 100%;
  padding: 15px !important;
  overflow-y: auto;
}

.scrolling-table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  padding: 0 10px 10px 10px;
}

.modal .modal-dialog .modal-content .modal-footer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  border-top: 1px solid #ccc;
  gap: 10px;
}

.modal .modal-dialog .modal-content .modal-footer .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
  border-radius: 5px;
  height: 40px;
  padding: 0 15px;
  width: 100%;
  margin: 0 !important;
}

.modal .modal-dialog .modal-content .modal-footer .btn:hover {
  cursor: pointer;
  filter: brightness(0.9);
}

@media (min-width: 575px) {
  .modal.show {
    display: flex !important;
    justify-content: center;
    align-items: center;
  }
}

/*==============================================*/

.modal .modal-dialog .modal-content .modal-body table {
  min-width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  border-radius: 0.75rem;
  border: 2px solid #717171;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.modal .modal-dialog .modal-content .modal-body table th,
.modal .modal-dialog .modal-content .modal-body table td {
  padding: 0.75rem 1.5rem;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid #e5e7eb;
}

/* Adicionando border-radius nas células dos cantos para um efeito perfeito */
.modal .modal-dialog .modal-content .modal-body table thead tr th:first-child {
  border-top-left-radius: 0.75rem;
}

.modal .modal-dialog .modal-content .modal-body table thead tr th:last-child {
  border-top-right-radius: 0.75rem;
}

.modal
  .modal-dialog
  .modal-content
  .modal-body
  table
  tbody
  tr:last-child
  td:first-child {
  border-bottom-left-radius: 0.75rem;
}

.modal
  .modal-dialog
  .modal-content
  .modal-body
  table
  tbody
  tr:last-child
  td:last-child {
  border-bottom-right-radius: 0.75rem;
}

.modal .modal-dialog .modal-content .modal-body table thead th {
  font-size: 0.75rem; /* 12px */
  font-weight: 500;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.05em; /* 0.8px */
  background-color: #f9fafb;
}

.modal .modal-dialog .modal-content .modal-body table tbody tr:hover {
  background-color: #f9fafb;
}

.modal .modal-dialog .modal-content .modal-body table tbody tr:nth-child(even) {
  background-color: #f9fafb;
}

.modal
  .modal-dialog
  .modal-content
  .modal-body
  table
  tbody
  tr:nth-child(even):hover {
  background-color: #f3f4f6;
}

.modal .modal-dialog .modal-content .modal-body table tbody td {
  font-size: 0.875rem; /* 14px */
  color: #4b5563;
}

.modal .modal-dialog .modal-content .modal-body table tbody td:first-child {
  font-weight: 600;
  color: #111827;
}
