:root {
  --bn-ink: #0f2d45;
  --bn-blue: #1a4f7a;
  --bn-muted: #5a6b7a;
  --bn-line: #c5d3de;
  --bn-bg: #f5f8fb;
  --font: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: var(--font);
  color: var(--bn-ink);
  background: var(--bn-bg);
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header {
  background: #fff;
  border-bottom: 1px solid var(--bn-line);
}

.site-header .util {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  padding: 0.5rem 1.25rem;
  font-size: 0.75rem;
  background: #0f2d45;
  color: #e8eef4;
}

.site-header .util a:hover {
  text-decoration: underline;
}

.site-header .bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1rem 1.25rem;
}

.logo {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--bn-blue);
  white-space: nowrap;
}

.main-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  flex: 1;
}

.nav-group .nav-label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.nav-group ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.8rem;
  color: var(--bn-muted);
}

.nav-group a:hover {
  color: var(--bn-blue);
  text-decoration: underline;
}

.site-footer {
  margin-top: 3rem;
  padding: 2rem 1.25rem;
  background: #0f2d45;
  color: #d7e2ec;
  font-size: 0.85rem;
  line-height: 1.6;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  font-size: 0.8rem;
}

.site-footer .report {
  margin-top: 0.75rem;
  opacity: 0.9;
}

.site-footer .admin-hint {
  margin-top: 1rem;
  font-size: 0.75rem;
  opacity: 0.65;
}

.page-stub {
  max-width: 48rem;
  margin: 0 auto;
  padding: 2.5rem 1.25rem;
}

.page-stub h1 {
  margin: 0 0 0.75rem;
  font-size: 1.75rem;
}

.page-stub .meta {
  color: var(--bn-muted);
  font-size: 0.875rem;
}
