:root {
  --bg: var(--default-bg, var(--admin-bg));
  --fg: var(--default-fg, var(--admin-fg));
  --border: 4px solid var(--fg);
}

html, body {
  min-height: 100%;
  background: var(--bg);
  color: var(--fg);
  font-family: system-ui, sans-serif;
  font-weight: 900;
  text-transform: uppercase;
}

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100dvh;
}

header {
  flex: 0 0 20vh;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 10vw, 8rem);
  letter-spacing: -0.05em;
}

header h1 {
  font-size: inherit;
  font-weight: inherit;
  font-family: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  margin: 0;
}

#top-controls {
  position: fixed;
  top: 0; right: 0;
  z-index: 1001;
  display: flex;
}

#top-controls a {
  display: block;
  padding: 0.75rem 1.25rem;
  background: var(--fg);
  color: var(--bg);
  border: 4px solid var(--fg);
  border-top: none;
  font-family: system-ui, sans-serif;
  font-weight: 900;
  font-size: 0.8rem;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.1em;
}

#top-controls a:hover {
  background: transparent;
  color: var(--fg);
}

label {
  display: block;
  font-size: 0.8rem;
  margin-bottom: 0.5rem;
  margin-top: 1.5rem;
}

label:first-of-type {
  margin-top: 0;
}

input[type="text"], input[type="email"], select {
  display: block;
  width: 100%;
  background: transparent;
  color: var(--fg);
  border: var(--border);
  padding: 1rem;
  font-family: inherit;
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  outline: none;
  margin-bottom: 1.5rem;
}

input[type="text"]:focus, input[type="email"]:focus, select:focus {
  background: var(--fg);
  color: var(--bg);
}

input[type="text"]:focus::placeholder,
input[type="email"]:focus::placeholder {
  color: var(--bg);
  opacity: 0.5;
}

select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

select option {
  background: var(--bg);
  color: var(--fg);
}

input[type="submit"], button {
  display: block;
  width: 100%;
  background: var(--fg);
  color: var(--bg);
  border: var(--border);
  padding: 1rem;
  font-family: inherit;
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  cursor: pointer;
  letter-spacing: 0.1em;
}

input[type="submit"]:hover, button:hover {
  background: var(--bg);
  color: var(--fg);
}

.flash {
  border: var(--border);
  padding: 1rem;
  margin-bottom: 2rem;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  text-transform: none;
  font-weight: 400;
}

.login-link, .signup-link, .cancel-link {
  display: block;
  text-align: center;
  margin-top: 1.5rem;
  color: var(--fg);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
}

@media (max-width: 480px) {
  header {
    flex: 0 0 12vh;
  }
}
