html[data-photodock-auth-guard="protected"][data-photodock-auth-ready="false"] #root {
  visibility: hidden;
}

#photodock-auth-boot {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background:
    radial-gradient(circle at top, hsl(var(--accent) / 0.12), transparent 38%),
    hsl(var(--background));
}

html[data-photodock-auth-guard="protected"][data-photodock-auth-ready="false"] #photodock-auth-boot {
  display: flex;
}

.photodock-auth-boot__card {
  width: min(100%, 26rem);
  border: 1px solid hsl(var(--border));
  border-radius: calc(var(--radius) + 0.25rem);
  background: hsl(var(--card));
  padding: 1.5rem;
  box-shadow: var(--shadow-elevated);
  text-align: center;
}

.photodock-auth-boot__spinner {
  width: 2.5rem;
  height: 2.5rem;
  margin: 0 auto 1rem;
  border-radius: 999px;
  border: 3px solid hsl(var(--border));
  border-top-color: hsl(var(--accent));
  animation: photodock-auth-spin 0.9s linear infinite;
}

.photodock-auth-boot__title {
  margin-bottom: 0.35rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: hsl(var(--foreground));
}

.photodock-auth-boot__message {
  font-size: 0.92rem;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
}

.photodock-auth-boot--error .photodock-auth-boot__card {
  border-color: hsl(var(--destructive) / 0.25);
}

.photodock-auth-boot--error .photodock-auth-boot__spinner {
  display: none;
}

.photodock-auth-boot--error .photodock-auth-boot__title {
  color: hsl(var(--destructive));
}

.auth-status {
  margin-bottom: 1rem;
  border: 1px solid hsl(var(--border));
  border-radius: calc(var(--radius) - 0.125rem);
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  background: hsl(var(--card));
  color: hsl(var(--foreground));
}

.auth-status--hidden {
  display: none;
}

.auth-status--info {
  border-color: hsl(var(--border));
  background: hsl(var(--secondary));
}

.auth-status--success {
  border-color: hsl(var(--accent) / 0.28);
  background: hsl(var(--accent) / 0.12);
}

.auth-status--error {
  border-color: hsl(var(--destructive) / 0.3);
  background: hsl(var(--destructive) / 0.08);
  color: hsl(var(--foreground));
}

[data-photodock-auth-loading="true"] {
  opacity: 0.72;
  pointer-events: none;
}

[data-photodock-auth-loading="true"] button,
[data-photodock-auth-loading="true"] input {
  cursor: wait;
}

[data-photodock-signout] {
  margin-left: 0.75rem;
}

@media (max-width: 639px) {
  [data-photodock-signout] {
    margin-left: 0;
  }
}

@keyframes photodock-auth-spin {
  to {
    transform: rotate(360deg);
  }
}
