/**
 * People, assets, protocols, administration, and Identity surfaces.
 * Shared Gaia primitives own the base contracts; this module owns only layout
 * and presentation that is specific to these operational hosts.
 */

.people-assets-page,
.account-manage-shell {
  min-width: 0;
}

.employee-create-page .form-input {
  background-color: transparent;
}

.account-first-login .password-tooltip {
  position: absolute;
  z-index: var(--gaia-layer-floating-control);
  width: 100%;
  padding: var(--gaia-space-card-compact);
  visibility: hidden;
  opacity: 0;
  background: var(--gaia-surface-raised);
  border-radius: var(--gaia-radius-card);
  box-shadow: var(--gaia-elevation-raised);
  transition:
    opacity var(--gaia-motion-duration-standard) var(--gaia-motion-easing-standard),
    visibility var(--gaia-motion-duration-standard) var(--gaia-motion-easing-standard);
}

.account-first-login .password-tooltip.active {
  visibility: visible;
  opacity: 1;
}

.account-first-login .btn-transition {
  transition:
    transform var(--gaia-motion-duration-standard) var(--gaia-motion-easing-standard),
    opacity var(--gaia-motion-duration-standard) var(--gaia-motion-easing-standard);
}

.account-first-login .btn-transition[class~="d-none"] {
  pointer-events: none;
  opacity: 0;
  transform: scale(0.8);
}

.account-first-login .password-input.valid {
  border: var(--gaia-border-width-medium) solid var(--gaia-status-success-text);
}

.account-first-login .password-input.invalid {
  border: var(--gaia-border-width-medium) solid var(--gaia-status-danger-text);
}

.inventory-software-form .no-hover-list .list-group-item:hover {
  cursor: default;
  background-color: transparent;
}

.inventory-employee-page :is(.tag-entering, .tag-exiting) {
  transition: opacity var(--gaia-motion-duration-standard) var(--gaia-motion-easing-standard);
}

.inventory-employee-page .tag-entering,
.inventory-employee-page .tag-exiting.hidden {
  opacity: 0;
}

.inventory-employee-page .tag-entering[class~="visible"],
.inventory-employee-page .tag-exiting {
  opacity: 1;
}

.inventory-employee-page .card {
  transition: none;
}

.inventory-employee-page .card:hover {
  box-shadow: none;
  transform: none;
}

.inventory-employee-page .input-group {
  overflow: hidden;
  border: var(--gaia-control-border-width) solid var(--gaia-control-border);
  border-radius: var(--gaia-control-radius);
}

.inventory-employee-page .input-group .select2-container--msi-studio .select2-selection {
  border: 0;
  border-start-end-radius: 0;
  border-end-end-radius: 0;
}

.inventory-employee-page .input-group .btn-primary {
  border: 0;
}

.inventory-search {
  min-width: min(100%, 12.5rem);
  max-width: 17.5rem;
}

.inventory-chart-container {
  min-height: clamp(18rem, 42vw, 23.75rem);
  background: var(--gaia-surface-raised);
  border-color: var(--gaia-surface-border);
}

.inventory-chart-info {
  color: var(--gaia-text-secondary);
  background: var(--gaia-surface-raised);
  border-color: var(--gaia-surface-border);
}

.inventory-asset-summary,
.protocol-summary {
  display: flex;
  gap: var(--gaia-space-field);
  align-items: flex-start;
  min-width: 12rem;
}

.inventory-asset-summary > div {
  display: grid;
  gap: 0.125rem;
  min-width: 0;
}

.inventory-asset-icon {
  width: 1.5rem;
  font-size: var(--gaia-font-size-component);
  line-height: 1.5;
  text-align: center;
}

.inventory-progressive-detail > summary {
  min-height: var(--gaia-control-height);
  color: var(--gaia-text-action);
  cursor: pointer;
}

.inventory-progressive-detail > summary:focus-visible,
.protocol-sort-button:focus-visible,
.employee-select:focus-visible,
.account-manage-nav .list-group-item:focus-visible {
  outline: none;
  box-shadow: var(--gaia-control-focus-ring);
}

.inventory-detail-list {
  display: grid;
  gap: var(--gaia-space-field);
  min-width: min(19rem, 70vw);
  margin: var(--gaia-space-field) 0 0;
  padding: var(--gaia-space-card-compact);
  color: var(--gaia-text-primary);
  background: var(--gaia-surface-sunken);
  border-radius: var(--gaia-radius-dense);
}

.inventory-detail-list > div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1fr);
  gap: var(--gaia-space-field);
}

.inventory-detail-list :is(dt, dd) {
  margin: 0;
  overflow-wrap: anywhere;
}

.inventory-detail-list dt {
  color: var(--gaia-text-secondary);
  font-weight: var(--gaia-font-weight-semibold);
}

.inventory-actions-cell {
  position: sticky;
  inset-inline-end: 0;
  z-index: 1;
  min-width: 7rem;
  background: var(--gaia-table-background);
}

.inventory-actions-cell .gaia-icon-button,
.protocol-actions-cell :is(a, button) {
  min-height: var(--gaia-control-height);
}

.inventory-danger-action {
  color: var(--gaia-status-danger-text);
}

.inventory-modal-icon {
  display: flex;
  flex: 0 0 3rem;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
}

.inventory-modal-icon__glyph {
  font-size: 1.5rem;
  line-height: 1;
}

.inventory-modal-title {
  color: var(--gaia-text-inverse);
}

.protocols-toolbar {
  margin-block-end: var(--gaia-space-group);
}

.protocol-table {
  min-width: 46rem;
}

.protocol-sort-button {
  display: inline-flex;
  gap: var(--gaia-space-field);
  align-items: center;
  min-height: var(--gaia-control-height);
  padding: 0;
  color: inherit;
  font: inherit;
  background: transparent;
  border: 0;
}

.protocol-summary h3,
.protocol-summary p {
  overflow-wrap: anywhere;
}

.protocol-actions-cell {
  min-width: 16rem;
}

.protocol-preview {
  min-width: 0;
}

.protocol-preview iframe {
  display: block;
  width: 100%;
  min-height: clamp(18rem, 55vh, 30rem);
}

.employees-master-detail {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(0, 1.4fr);
  gap: var(--gaia-space-group);
}

.employee-select {
  min-height: var(--gaia-control-height);
  padding: 0;
  color: var(--gaia-text-action);
  font: inherit;
  font-weight: var(--gaia-font-weight-semibold);
  text-align: start;
  background: transparent;
  border: 0;
}

.employee-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.employee-detail-name {
  font-size: var(--gaia-font-size-section);
}

.employee-detail-metric,
.employees-filter-count {
  font-size: var(--gaia-font-size-metric-compact);
}

.people-assets-empty-icon {
  opacity: 0.45;
}

.employee-edit-header,
.account-manage-content-header,
.login-header {
  margin-block-end: 0;
}

.people-assets-currency-input {
  padding-inline-start: 2.5rem;
}

.login-shell {
  width: 100%;
  max-width: 64rem;
}

.login-visual {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.login-visual-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.login-panel {
  min-width: 0;
  max-width: 28rem;
  margin-inline: auto;
}

.login-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--gaia-surface-raised);
  border: 1px solid var(--gaia-surface-border);
  border-radius: var(--gaia-radius-card);
  box-shadow: var(--gaia-elevation-raised);
}

.login-support {
  margin-block-start: var(--gaia-space-group);
}

.login-description {
  margin-inline: auto;
}

.login-help-link {
  font-size: var(--gaia-font-size-body);
}

.login-support-copy {
  margin: 0;
  font-size: var(--gaia-font-size-caption);
}

#loginValidationSummary.validation-summary-errors {
  display: block;
}

#loginValidationSummary:focus-visible {
  outline: none;
  box-shadow: var(--gaia-control-focus-ring);
}

.account-manage-nav-card .card-header {
  padding: var(--gaia-space-card-compact);
}

.account-manage-nav {
  max-height: min(65vh, 32rem);
  overflow: auto;
}

.account-manage-nav .list-group-item {
  min-height: var(--gaia-control-height);
  padding: var(--gaia-space-card-compact);
  color: var(--gaia-text-primary);
  background: transparent;
  border-color: var(--gaia-surface-border);
}

.account-manage-nav .list-group-item[aria-current="page"] {
  color: var(--gaia-text-action);
  background: var(--gaia-surface-accent-subtle);
  border-inline-start-color: currentColor;
}

.account-welcome {
  margin-block-end: 0;
  color: var(--gaia-text-primary);
  background: var(--gaia-surface-accent-subtle);
}

.account-last-access {
  display: grid;
  gap: 0.125rem;
  color: var(--gaia-text-secondary);
  text-align: end;
}

.account-metric-icon {
  font-size: var(--gaia-font-size-metric-compact);
}

.account-empty-icon {
  font-size: 3rem;
}

.account-profile-progress {
  width: 100%;
  height: 1.5rem;
  accent-color: var(--gaia-action-background);
}

.role-icon-preview {
  min-height: var(--gaia-control-height);
}

.role-icon-grid {
  max-height: 12.5rem;
  overflow-y: auto;
}

.role-search-input {
  background: transparent;
}

.role-user-status-dot {
  font-size: var(--gaia-font-size-caption);
}

.role-remove-button {
  min-width: var(--gaia-control-height);
  min-height: var(--gaia-control-height);
}

.gaia-danger-zone {
  color: var(--gaia-status-danger-text);
  background: var(--gaia-status-danger-surface);
  border-color: currentColor;
}

[data-bs-theme="dark"] :is(.inventory-actions-cell, .inventory-chart-container, .inventory-chart-info) {
  color: var(--gaia-text-primary);
  background: var(--gaia-surface-raised);
  border-color: var(--gaia-surface-border);
}

@media (width <= 61.9375rem) {
  .inventory-asset-table td.inventory-actions-cell {
    position: static;
  }

  .inventory-asset-table .inventory-actions-cell {
    display: flex;
    justify-content: space-between;
  }

  .inventory-asset-table .inventory-actions-cell::before {
    flex: 0 0 40%;
  }

  .inventory-asset-table .inventory-actions {
    justify-content: flex-end;
  }

  body .employees-master-detail {
    grid-template-columns: minmax(0, 1fr);
  }

  .gaia-data-table.protocol-table {
    min-width: 42rem;
  }

  nav.account-manage-nav {
    display: flex;
    max-height: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .account-manage-nav .list-group {
    display: flex;
    flex-flow: row nowrap;
  }

  .account-manage-nav .list-group > .list-group-item {
    flex: 0 0 12rem;
  }
}

@media (width >= 62rem) {
  .login-shell--integrated {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(24rem, 0.9fr);
    gap: 0;
    align-items: stretch;
    overflow: hidden;
    background: var(--gaia-surface-raised);
    border: 1px solid var(--gaia-surface-border);
    border-radius: var(--gaia-radius-dialog);
    box-shadow: var(--gaia-elevation-raised);
  }

  .login-shell > .login-panel {
    display: flex;
    flex-direction: column;
    max-width: none;
    margin: 0;
    background: var(--gaia-surface-raised);
  }

  .login-panel > .login-card {
    flex: 1;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .login-panel > .login-support {
    padding: 0 var(--gaia-space-card) var(--gaia-space-card);
  }
}

@media (width <= 24.375rem) {
  .inventory-metrics > *,
  .login-shell > :is(.login-panel, .login-visual),
  .employees-master-detail > *,
  .account-manage-shell > * {
    min-width: 0;
    max-width: 100%;
  }

  .inventory-chart-switcher {
    display: grid;
    grid-template-columns: 1fr;
  }

  .inventory-progressive-detail .inventory-detail-list {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .employees-master-detail .employee-detail-grid,
  .inventory-progressive-detail .inventory-detail-list > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .gaia-page-header > .gaia-page-header__actions,
  .gaia-page-header > .gaia-page-header__actions > :is(a, button),
  .gaia-page-header > .gaia-page-header__actions .gaia-action-group,
  .gaia-page-header > .gaia-page-header__actions .gaia-action-group > :is(a, button) {
    width: 100%;
  }

  .protocol-preview > .card iframe {
    min-height: 20rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .account-first-login :where(.password-tooltip, .btn-transition),
  .inventory-employee-page :where(.tag-entering, .tag-exiting),
  aside.protocol-preview,
  .employees-master-detail .employee-select,
  .account-manage-nav > .list-group .list-group-item,
  .login-panel .login-help-link {
    scroll-behavior: auto;
    transition: none;
  }
}
