/* Global search palette: a calm, focused layer over the authenticated shell. */

.global-search-dialog {
  position: fixed;
  z-index: var(--hausl-layer-overlay);
  inset: 0;
  display: none;
  width: min(calc(100vw - 2rem), 46rem);
  max-width: none;
  max-height: min(calc(100svh - 4rem), 42rem);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: var(--hausl-text-primary);
  background: transparent;
  font-family: var(--hausl-font-ui);
}

.global-search-dialog.global-search-dialog--open {
  display: grid;
}

.global-search-dialog[hidden] {
  display: none !important;
}

.global-search-dialog::backdrop {
  background: color-mix(in srgb, var(--hausl-text-primary) 32%, transparent);
  backdrop-filter: blur(0.2rem);
}

.global-search-dialog:not(dialog) .global-search-panel {
  box-shadow:
    var(--hausl-shadow-overlay),
    0 0 0 100vmax color-mix(in srgb, var(--hausl-text-primary) 32%, transparent);
}

.global-search-panel {
  display: flex;
  width: 100%;
  min-height: 0;
  max-height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--hausl-border-default);
  border-radius: var(--hausl-radius-large);
  background: var(--hausl-surface-raised);
  box-shadow: var(--hausl-shadow-overlay);
}

.global-search-header {
  display: flex;
  min-height: 4.5rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem var(--hausl-mobile-gutter);
  border-bottom: 1px solid var(--hausl-border-default);
}

.global-search-form {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  gap: 0.75rem;
}

.global-search-input {
  min-width: 0;
  min-height: 2.75rem;
  flex: 1;
  border: 1px solid transparent;
  border-radius: var(--hausl-radius-control);
  outline: 0;
  color: var(--hausl-text-primary);
  background: var(--hausl-surface-subtle);
  font-family: var(--hausl-font-ui);
  font-size: var(--hausl-text-body);
  font-weight: var(--hausl-weight-regular);
  line-height: var(--hausl-leading-body);
  padding: 0.65rem 0.75rem;
}

.global-search-input::placeholder {
  color: var(--hausl-text-secondary);
  opacity: 1;
}

.global-search-input:focus,
.global-search-input:focus-visible {
  border-color: var(--hausl-accent);
  box-shadow: var(--hausl-shadow-focus);
  outline: 0;
}

.global-search-close,
.global-search-trigger {
  display: inline-flex;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 1px solid transparent;
  border-radius: var(--hausl-radius-control);
  color: var(--hausl-text-secondary);
  background: transparent;
  cursor: pointer;
  font-family: var(--hausl-font-ui);
  font-size: var(--hausl-text-ui);
  font-weight: var(--hausl-weight-medium);
  line-height: var(--hausl-leading-ui);
}

.global-search-close:hover,
.global-search-trigger:hover {
  color: var(--hausl-accent-deep);
  background: var(--hausl-accent-soft);
}

.global-search-close:focus-visible,
.global-search-trigger:focus-visible,
.global-search-item:focus-visible {
  border-color: var(--hausl-accent);
  box-shadow: var(--hausl-shadow-focus);
  outline: 0;
}

.global-search-key-hint {
  display: none;
  flex: 0 0 auto;
  align-items: center;
  min-height: 1.75rem;
  padding: 0 0.5rem;
  border: 1px solid var(--hausl-border-default);
  border-radius: var(--hausl-radius-control);
  color: var(--hausl-text-secondary);
  background: var(--hausl-surface-subtle);
  font-size: var(--hausl-text-micro);
  font-weight: var(--hausl-weight-medium);
  line-height: var(--hausl-leading-ui);
}

.global-search-results {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.75rem var(--hausl-mobile-gutter) var(--hausl-mobile-gutter);
  scrollbar-color: var(--hausl-border-strong) transparent;
}

.global-search-group + .global-search-group {
  margin-top: 1rem;
}

.global-search-group-title {
  margin: 0 0 0.35rem;
  color: var(--hausl-text-faint);
  font-size: var(--hausl-text-micro);
  font-weight: var(--hausl-weight-bold);
  line-height: var(--hausl-leading-ui);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.global-search-list {
  display: grid;
  gap: 0.15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.global-search-item {
  display: flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid transparent;
  border-radius: var(--hausl-radius-control);
  color: var(--hausl-text-primary);
  background: transparent;
  font-family: var(--hausl-font-ui);
  font-size: var(--hausl-text-ui);
  font-weight: var(--hausl-weight-medium);
  line-height: var(--hausl-leading-ui);
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease;
}

.global-search-item:hover,
.global-search-item.global-search-item--active,
.global-search-item[data-global-search-active] {
  color: var(--hausl-accent-deep);
  background: var(--hausl-accent-soft);
}

.global-search-item-icon {
  display: inline-flex;
  width: var(--hausl-icon-md);
  height: var(--hausl-icon-md);
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  color: var(--hausl-accent);
}

.global-search-item-copy {
  min-width: 0;
  flex: 1;
}

.global-search-item-label,
.global-search-item-description {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-search-item-description {
  margin-top: 0.15rem;
  color: var(--hausl-text-secondary);
  font-size: var(--hausl-text-meta);
  font-weight: var(--hausl-weight-regular);
  line-height: var(--hausl-leading-ui);
}

.global-search-item-meta {
  flex: 0 0 auto;
  color: var(--hausl-text-faint);
  font-size: var(--hausl-text-meta);
  font-weight: var(--hausl-weight-regular);
  line-height: var(--hausl-leading-ui);
}

.global-search-empty {
  padding: 1rem 0.75rem;
  color: var(--hausl-text-secondary);
  font-size: var(--hausl-text-ui);
  line-height: var(--hausl-leading-body);
}

.global-search-trigger [aria-hidden="true"],
.global-search-close [aria-hidden="true"],
.global-search-item-icon [aria-hidden="true"] {
  pointer-events: none;
}

@media (min-width: 768px) {
  .global-search-dialog {
    max-height: min(calc(100svh - 5rem), 42rem);
  }

  .global-search-header {
    padding-inline: 1rem;
  }

  .global-search-key-hint {
    display: inline-flex;
  }

  .global-search-results {
    padding-inline: 1rem;
  }
}

@media (max-width: 767px) {
  .global-search-dialog {
    width: 100%;
    height: 100svh;
    max-height: none;
    border: 0;
    border-radius: 0;
  }

  .global-search-dialog::backdrop {
    background: var(--hausl-surface-paper);
  }

  .global-search-dialog:not(dialog) .global-search-panel {
    box-shadow: none;
  }

  .global-search-panel {
    min-height: 100svh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding-top: env(safe-area-inset-top);
    padding-bottom: var(--hausl-safe-bottom);
  }

  .global-search-header {
    min-height: 4.75rem;
  }

  .global-search-results {
    padding-bottom: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .global-search-item {
    transition-duration: 0.01ms;
  }
}
