* {
  box-sizing: border-box;
}

body {
  background: var(--app-bg);
  min-height: 100vh;
}

button,
input,
select,
textarea,
.page-intro,
.workspace-temporal-school-card,
.workspace-constraint-card,
.workspace-school-panel,
.workspace-card,
.school-card,
.workspace-meta-card,
.workspace-summary-card,
.batch-tile {
  border-radius: var(--radius-md);
}

.page-intro,
.workspace-temporal-school-card,
.workspace-constraint-card,
.workspace-school-panel {
  background: var(--panel-bg);
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-sm);
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible,
[role="button"]:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.page {
  animation: pageFade 0.22s ease;
}

@keyframes pageFade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
