* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-body);
  background: var(--color-bg-page);
  color: var(--color-text-primary);
  /* Subtle brand glow in corners */
  background-image:
    radial-gradient(ellipse 600px 400px at 0% 0%, rgba(0, 175, 220, 0.05) 0%, transparent 70%),
    radial-gradient(ellipse 500px 350px at 100% 100%, rgba(255, 138, 0, 0.04) 0%, transparent 70%);
}

/* Top gradient accent bar */
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(to right, #00AFDC, #000000 40%, #FF8A00);
  z-index: 100;
}

a {
  color: var(--color-text-link);
  text-decoration: none;
}

a:hover {
  color: var(--color-brand-orange);
}

.page {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--space-16) var(--space-6) var(--space-16);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.page-header {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

/* main grid layout defined in components.css */

/* No card borders — open canvas approach */
.panel {
  background: transparent;
  padding: 0;
}

.page-footer {
  color: var(--color-text-weak);
  font-size: 12px;
  padding-top: var(--space-8);
  border-top: 1px solid var(--color-border);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 720px) {
  .page {
    padding: var(--space-12) var(--space-4) var(--space-12);
    gap: var(--space-8);
  }
}
