/* ========================================================= */
/* Modo Escuro */
/* ========================================================= */

.app-breadcrumb,
.breadcrumb,
.page-breadcrumb,
.subheader {
    background-color: transparent !important;
}

.subheader-title {
    color: var(--bs-body-color, inherit) !important;
}

nav.bg-body[aria-label="breadcrumb"],
div[data-controller="menu-hub"] > .bg-body.border-bottom {
    background-color: transparent !important;
}

div[data-controller="menu-hub"] h1,
div[data-controller="menu-hub"] .text-dark {
    color: var(--bs-body-color, inherit) !important;
}

/* ========================================================= */
/* Sidebar Recolhida - Quadrados e Expansão Total NATIVA     */
/* ========================================================= */

.set-nav-minified #js-primary-nav:not(:hover) .nav-link-text,
.nav-function-minify #js-primary-nav:not(:hover) .nav-link-text {
    display: none !important;
}

.set-nav-minified #js-primary-nav:not(:hover) .nav-icon,
.nav-function-minify #js-primary-nav:not(:hover) .nav-icon,
.set-nav-minified #js-primary-nav:not(:hover) .nav-icon > *,
.nav-function-minify #js-primary-nav:not(:hover) .nav-icon > * {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}

.set-nav-minified #js-primary-nav:not(:hover) li,
.nav-function-minify #js-primary-nav:not(:hover) li {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.set-nav-minified #js-primary-nav:not(:hover) .nav-link,
.nav-function-minify #js-primary-nav:not(:hover) .nav-link {
    padding: 0 !important;
    gap: 0 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    flex: 0 0 44px !important;
    margin: 4px 0 4px -18px !important;
    justify-content: center !important;
    align-items: center !important;
    border-radius: 10px !important;
    position: static !important;
}

.is-required {
  border-left: 3px solid #dc3545;
}

/* Mantém as ações dos componentes compartilhados no rodapé, sem sobreposição. */
.ui-show-table__actions--footer {
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  width: 100%;
}

.ui-show-table__actions-group {
  align-items: center;
  flex-wrap: wrap;
}

.ui-show-table__actions-group--start {
  margin-left: auto;
}

.ui-show-table__actions-group--end {
  margin-left: 0;
}

.ui-show-table__actions-group form {
  margin: 0;
}

.ui-show-table__actions-group .btn,
.ui-form-table__actions .btn {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  min-width: 160px;
}

@media (max-width: 991.98px) {
  .ui-show-table__actions-group,
  .ui-show-table__actions-group form,
  .ui-show-table__actions-group .btn,
  .ui-form-table__actions-group,
  .ui-form-table__actions-group form,
  .ui-form-table__actions .btn {
    width: 100%;
  }
}

/* Dashboard operacional de acessos */
.access-dashboard {
  --access-panel: var(--bs-body-bg, #fff);
  --access-border: var(--bs-border-color, #e0e5eb);
  --access-muted: var(--bs-secondary-color, #6c7786);
  --access-primary: #397ff0;
  --access-success: #20b99a;
  --access-danger: #ef5b6c;
  --access-warning: #e79b22;
}

.access-dashboard__header,
.access-dashboard__panel-heading {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.access-dashboard__header {
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.access-dashboard__filter {
  align-items: end;
  background: var(--access-panel);
  border: 1px solid var(--access-border);
  border-radius: 1rem;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
}

.access-dashboard__filter-form {
  align-items: end;
  display: flex;
  gap: .75rem;
}

.access-dashboard__filter-field {
  min-width: 155px;
}

.access-dashboard__filter-field .form-label {
  color: var(--access-muted);
  font-size: .72rem;
  font-weight: 700;
  margin-bottom: .3rem;
  text-transform: uppercase;
}

.access-dashboard__shortcuts {
  align-items: center;
  background: var(--bs-tertiary-bg, #f4f6f8);
  border-radius: .7rem;
  display: flex;
  gap: .25rem;
  padding: .25rem;
}

.access-dashboard__shortcuts a {
  border-radius: .5rem;
  color: var(--access-muted);
  font-size: .78rem;
  font-weight: 600;
  padding: .5rem .7rem;
  text-decoration: none;
  white-space: nowrap;
}

.access-dashboard__shortcuts a:hover,
.access-dashboard__shortcuts a.active {
  background: var(--access-panel);
  box-shadow: 0 2px 8px rgba(27, 39, 51, .08);
  color: var(--access-primary);
}

.access-dashboard__header h1 {
  font-size: clamp(1.75rem, 2.4vw, 2.4rem);
  margin: 0 0 .35rem;
}

.access-dashboard__header p,
.access-dashboard__panel-heading p {
  color: var(--access-muted);
  margin: 0;
}

.access-dashboard__eyebrow {
  color: var(--access-primary) !important;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.access-dashboard__layout {
  align-items: start;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 3fr) minmax(300px, 1fr);
}

.access-dashboard__main,
.access-dashboard__charts {
  display: grid;
  gap: 1.5rem;
}

.access-dashboard__charts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.access-dashboard__panel {
  background: var(--access-panel);
  border: 1px solid var(--access-border);
  border-radius: 1rem;
  box-shadow: 0 7px 24px rgba(27, 39, 51, .05);
  padding: 1.5rem;
}

.access-dashboard__panel-heading {
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.access-dashboard__panel-heading h2 {
  font-size: 1.2rem;
  margin: 0 0 .2rem;
}

.access-dashboard__date {
  background: var(--bs-tertiary-bg, #f4f6f8);
  border-radius: 999px;
  color: var(--access-muted);
  font-size: .78rem;
  padding: .45rem .8rem;
  white-space: nowrap;
}

.access-dashboard__metrics {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.access-metric {
  --metric-color: var(--access-primary);
  --metric-bg: color-mix(in srgb, var(--metric-color) 11%, var(--access-panel));
  background: var(--metric-bg);
  border: 1px solid color-mix(in srgb, var(--metric-color) 18%, transparent);
  border-radius: .85rem;
  color: inherit;
  min-height: 145px;
  padding: 1.1rem;
  position: relative;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.access-metric:hover {
  box-shadow: 0 9px 22px color-mix(in srgb, var(--metric-color) 16%, transparent);
  color: inherit;
  transform: translateY(-2px);
}

.access-metric--success { --metric-color: var(--access-success); }
.access-metric--danger { --metric-color: var(--access-danger); }
.access-metric--warning { --metric-color: var(--access-warning); }

.access-metric__icon {
  align-items: center;
  background: color-mix(in srgb, var(--metric-color) 17%, transparent);
  border-radius: 50%;
  color: var(--metric-color);
  display: flex;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.access-metric__icon svg,
.access-timeline__avatar svg {
  fill: none;
  height: 23px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 23px;
}

.access-metric strong {
  color: var(--metric-color);
  display: block;
  font-size: 1.9rem;
  line-height: 1;
  margin: .9rem 0 .4rem;
}

.access-metric > span:last-child {
  color: var(--access-muted);
  font-size: .82rem;
  font-weight: 600;
}

.access-chart-panel {
  min-width: 0;
}

.access-dashboard__panel-link {
  font-size: .8rem;
  font-weight: 600;
  text-decoration: none;
}

.access-timeline {
  max-height: 780px;
  overflow: hidden;
  padding-right: .75rem;
}

.access-timeline__list {
  list-style: none;
  margin: 0;
  max-height: 690px;
  overflow-y: auto;
  padding: 0 .5rem 0 0;
}

.access-timeline__item {
  --result-color: var(--access-primary);
  align-items: center;
  display: grid;
  grid-template-columns: 48px 20px minmax(0, 1fr);
  min-height: 82px;
  position: relative;
}

.access-timeline__item--permitido { --result-color: var(--access-success); }
.access-timeline__item--negado { --result-color: var(--access-danger); }
.access-timeline__item--erro { --result-color: var(--access-warning); }

.access-timeline__item time {
  color: var(--access-muted);
  display: flex;
  flex-direction: column;
  font-size: .7rem;
  text-align: right;
}

.access-timeline__item time strong {
  color: var(--bs-body-color);
  font-size: .82rem;
}

.access-timeline__marker {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: relative;
}

.access-timeline__marker::before {
  background: var(--access-border);
  content: "";
  height: 100%;
  left: calc(50% - 1px);
  position: absolute;
  top: 0;
  width: 2px;
}

.access-timeline__marker::after {
  background: var(--access-panel);
  border: 3px solid var(--result-color);
  border-radius: 50%;
  content: "";
  height: 13px;
  position: relative;
  width: 13px;
}

.access-timeline__content {
  align-items: center;
  border-radius: .7rem;
  color: inherit;
  display: flex;
  gap: .75rem;
  min-width: 0;
  padding: .55rem;
  text-decoration: none;
}

.access-timeline__content:hover {
  background: var(--bs-tertiary-bg, #f5f7f9);
  color: inherit;
}

.access-timeline__avatar {
  align-items: center;
  background: var(--bs-tertiary-bg, #eef1f4);
  border: 2px solid color-mix(in srgb, var(--result-color) 55%, transparent);
  border-radius: 50%;
  color: var(--access-muted);
  display: flex;
  flex: 0 0 48px;
  height: 48px;
  justify-content: center;
  overflow: hidden;
  width: 48px;
}

.access-timeline__avatar img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.access-timeline__details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.access-timeline__details strong,
.access-timeline__details span,
.access-timeline__details small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.access-timeline__details span,
.access-timeline__details small {
  color: var(--access-muted);
  font-size: .72rem;
}

.access-timeline__details small {
  color: var(--result-color);
}

.access-timeline__empty {
  align-items: center;
  color: var(--access-muted);
  display: flex;
  flex-direction: column;
  min-height: 330px;
  justify-content: center;
  text-align: center;
}

.access-timeline__empty > span {
  font-size: 3rem;
  margin-bottom: .75rem;
}

.access-timeline__empty p {
  margin: .25rem 0 0;
}

@media (max-width: 1199.98px) {
  .access-dashboard__layout { grid-template-columns: 1fr; }
  .access-timeline { max-height: none; }
  .access-timeline__list { max-height: 520px; }
}

@media (max-width: 767.98px) {
  .access-dashboard__header { align-items: flex-start; flex-direction: column; }
  .access-dashboard__header .btn { width: 100%; }
  .access-dashboard__filter { align-items: stretch; flex-direction: column; }
  .access-dashboard__filter-form { align-items: stretch; }
  .access-dashboard__filter-field { flex: 1; min-width: 0; }
  .access-dashboard__shortcuts { align-self: flex-start; }
  .access-dashboard__metrics,
  .access-dashboard__charts { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 575.98px) {
  .access-dashboard__filter-form { flex-direction: column; }
  .access-dashboard__metrics,
  .access-dashboard__charts { grid-template-columns: 1fr; }
  .access-dashboard__panel { padding: 1rem; }
  .access-dashboard__date { display: none; }
}
