.glass-surface {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: opacity 0.26s ease-out;
}

.glass-surface__filter {
  width: 100%;
  height: 100%;
  pointer-events: none;
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: -1;
}

.glass-surface__content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border-radius: inherit;
  position: relative;
  z-index: 1;
}

.glass-surface--svg {
  background: light-dark(hsl(0 0% 100% / var(--glass-frost, 0)), hsl(0 0% 0% / var(--glass-frost, 0)));
  backdrop-filter: var(--filter-id, url(#glass-filter)) saturate(var(--glass-saturation, 1));
  box-shadow:
    0 0 2px 1px light-dark(color-mix(in oklch, black, transparent 85%), color-mix(in oklch, white, transparent 65%)) inset,
    0 0 10px 4px light-dark(color-mix(in oklch, black, transparent 90%), color-mix(in oklch, white, transparent 85%)) inset,
    0px 4px 16px rgba(17, 17, 26, 0.05),
    0px 8px 24px rgba(17, 17, 26, 0.05),
    0px 16px 56px rgba(17, 17, 26, 0.05),
    0px 4px 16px rgba(17, 17, 26, 0.05) inset,
    0px 8px 24px rgba(17, 17, 26, 0.05) inset,
    0px 16px 56px rgba(17, 17, 26, 0.05) inset;
}

.glass-surface--fallback {
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(12px) saturate(1.8) brightness(1.1);
  -webkit-backdrop-filter: blur(12px) saturate(1.8) brightness(1.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow:
    0 8px 32px 0 rgba(31, 38, 135, 0.2),
    0 2px 16px 0 rgba(31, 38, 135, 0.1),
    inset 0 1px 0 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 0 rgba(255, 255, 255, 0.2);
}

.glass-surface--nav {
  border-bottom: 1px solid transparent;
  transition:
    background 0.45s cubic-bezier(0.2, 0.7, 0.2, 1),
    backdrop-filter 0.45s cubic-bezier(0.2, 0.7, 0.2, 1),
    -webkit-backdrop-filter 0.45s cubic-bezier(0.2, 0.7, 0.2, 1),
    border-color 0.45s ease,
    box-shadow 0.45s ease;
}

.glass-surface--nav.glass-surface--idle {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

.glass-surface--nav.glass-surface--active.glass-surface--svg,
.glass-surface--nav.glass-surface--active.glass-surface--fallback {
  background: rgb(var(--bg-rgb) / calc(var(--glass-frost, 0.12) + 0.28));
  border-bottom-color: rgba(240, 234, 224, 0.1);
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(240, 234, 224, 0.08);
}

/* No nav, a borda branca do fallback genérico não deve aparecer */
.glass-surface--nav.glass-surface--fallback {
  border-color: transparent;
}

/* Chrome/Edge: usa o filtro SVG com distorção */
.glass-surface--nav.glass-surface--active.glass-surface--svg {
  backdrop-filter: var(--filter-id) saturate(1.4) brightness(1.05);
  -webkit-backdrop-filter: var(--filter-id) saturate(1.4) brightness(1.05);
}

/* Safari/Firefox: blur nativo */
.glass-surface--nav.glass-surface--active.glass-surface--fallback {
  backdrop-filter: blur(20px) saturate(1.8) brightness(0.92);
  -webkit-backdrop-filter: blur(20px) saturate(1.8) brightness(0.92);
}

.glass-surface--nav .glass-surface__content {
  padding: 0;
}

.glass-surface:focus-visible {
  outline: 2px solid rgb(var(--accent-rgb));
  outline-offset: 2px;
}

@supports not (backdrop-filter: blur(10px)) {
  .glass-surface--fallback {
    background: rgba(255, 255, 255, 0.4);
  }

  .glass-surface--nav.glass-surface--active.glass-surface--fallback {
    background: rgb(var(--bg-rgb) / 0.92);
  }
}
