* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #ffffff;
  color: #111827;
  overflow-x: hidden;
}

@keyframes page-enter {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes page-exit {
  to {
    opacity: 0;
  }
}

body.page-entered {
  animation: page-enter 260ms ease-out both;
}

body.page-leaving {
  animation: page-exit 160ms ease-in both;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  body.page-entered,
  body.page-leaving {
    animation: none;
  }
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  display: block;
}

button {
  font-family: inherit;
}

:root {
  --primary: #6366f1;
  --primary-dark: #4f46e5;
  --primary-light: #818cf8;
  --background: #ffffff;
  --foreground: #111827;
  --muted: #f8fafc;
  --muted-text: #64748b;
  --border: #e5e7eb;
  --card: #ffffff;
  --shadow-card: 0 10px 30px rgba(15, 23, 42, 0.07);
  --shadow-glow: 0 10px 35px rgba(99, 102, 241, 0.25);
}

html.dark-theme {
  color-scheme: dark;
  --background: #0f172a;
  --foreground: #f8fafc;
  --muted: #172033;
  --muted-text: #94a3b8;
  --border: #334155;
  --card: #1e293b;
  --shadow-card: 0 10px 30px rgba(0, 0, 0, 0.22);
  --shadow-glow: 0 10px 35px rgba(99, 102, 241, 0.2);
}

html.dark-theme body { background: var(--background); color: var(--foreground); }
html.dark-theme .site-header,
html.dark-theme .auth-header { background: rgba(15, 23, 42, .94); }
html.dark-theme .form-panel,
html.dark-theme .auth-card,
html.dark-theme .legal-card,
html.dark-theme .topic-card,
html.dark-theme .article-card,
html.dark-theme .job-card,
html.dark-theme .calendar-card,
html.dark-theme .quick-grid a,
html.dark-theme .areas-grid article,
html.dark-theme .explore-grid button { background: var(--card); color: var(--foreground); }
html.dark-theme .brand-panel { background: #020617; }
html.dark-theme .blog-hero-overlay,
html.dark-theme .jobs-hero-overlay,
html.dark-theme .info-hero-overlay,
html.dark-theme .docs-hero-overlay,
html.dark-theme .dashboard-hero-overlay { background: linear-gradient(to top, #0f172a 0%, rgba(15, 23, 42, .9) 30%, rgba(15, 23, 42, .35) 72%, transparent 100%); }
html.dark-theme .site-footer { background: #111827; }

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.site-footer {
  margin-top: 60px;
  border-top: 1px solid var(--border);
  background: #f8fafc;
}

.footer-main { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; padding-top: 38px; padding-bottom: 32px; }
.footer-logo-link { display: inline-flex; align-items: center; gap: 10px; color: var(--foreground); font-size: 16px; font-weight: 800; }
.footer-logo { width: 38px; height: 38px; border-radius: 999px; object-fit: contain; }
.footer-brand p { margin-top: 10px; color: var(--muted-text); font-size: 12px; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-column h2 { margin-bottom: 5px; color: var(--foreground); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.footer-column a { color: var(--muted-text); font-size: 12px; }
.footer-column a:hover { color: var(--primary); }
.footer-help-links { display: flex; align-items: flex-start; gap: 24px; }
.footer-help-main-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-help-coming-soon-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-link-coming-soon { color: var(--muted-text); font-size: 12px; }
.footer-link-coming-soon small { margin-left: 4px; font-size: 10px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 15px; padding-top: 15px; padding-bottom: 18px; border-top: 1px solid var(--border); color: var(--muted-text); font-size: 11px; }

@media (max-width: 640px) {
  .footer-main { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}
