/* Theme variables */
:root {
  /* Light theme colors */
  --background-color: #f5f5f5;
  --text-color: #333;
  --card-background: #fff;
  --card-shadow: rgba(0, 0, 0, 0.1);
  --primary-color: #4CAF50;
  --primary-hover: #45a049;
  --border-color: #ddd;
  --error-color: #f44336;
  --success-color: #4CAF50;
  --warning-color: #ff9800;
  --info-color: #1565c0;
  --error-bg: #ffebee;
  --success-bg: #f1f8e9;
  --info-bg: #e3f2fd;
  --error-border: #ffcdd2;
  --success-border: #c8e6c9;
  --info-border: #bbdefb;
}

[data-theme="dark"] {
  /* Dark theme colors */
  --background-color: #121212;
  --text-color: #f5f5f5;
  --card-background: #1e1e1e;
  --card-shadow: rgba(0, 0, 0, 0.5);
  --primary-color: #4CAF50;
  --primary-hover: #45a049;
  --border-color: #444;
  --error-color: #f44336;
  --success-color: #4CAF50;
  --warning-color: #ff9800;
  --info-color: #90caf9;
  --error-bg: #2c1a1d;
  --success-bg: #1b281e;
  --info-bg: #1a2632;
  --error-border: #6b2c2f;
  --success-border: #3b5a3f;
  --info-border: #3d4a65;
}

/* Apply theme variables */
body {
  background-color: var(--background-color);
  color: var(--text-color);
}

main, form {
  background-color: var(--card-background);
  box-shadow: 0 2px 10px var(--card-shadow);
}

input, textarea {
  background-color: var(--card-background);
  color: var(--text-color);
  border-color: var(--border-color);
}

.submit-btn, .nav-link {
  background-color: var(--primary-color);
}

.submit-btn:hover, .submit-btn:focus, 
.nav-link:hover, .nav-link:focus {
  background-color: var(--primary-hover);
}

/* Theme toggle styles */
.theme-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1000;
  background: var(--card-background);
  border: 2px solid var(--border-color);
  border-radius: 50%;
  width: 50px;
  height: 50px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 2px 10px var(--card-shadow);
  transition: transform 0.3s ease;
}

.theme-toggle:hover {
  transform: scale(1.1);
}

.theme-toggle-icon {
  font-size: 24px;
  line-height: 1;
}

/* Error and info message styling */
.error-message {
  background-color: var(--error-bg);
  color: var(--error-color);
  border: 1px solid var(--error-border);
}

.info-message {
  background-color: var(--info-bg);
  color: var(--info-color);
  border: 1px solid var(--info-border);
}

/* Validation styles */
input:required:valid:not(:placeholder-shown),
textarea:required:valid:not(:placeholder-shown) {
  border-color: var(--success-color);
  background-color: var(--success-bg);
}

input:required:invalid:not(:placeholder-shown),
textarea:required:invalid:not(:placeholder-shown) {
  border-color: var(--error-color);
  background-color: var(--error-bg);
}

/* Specific validation styles for email */
input[type="email"]:not(:placeholder-shown):invalid {
  border-color: var(--error-color);
  background-color: var(--error-bg);
}