/* ===== PUBLIC READ-ONLY PAGES — the world page and shared battle reports =====
   One column on the legal pages' ground (legal.css). Tokens come from signal-glass.css. */

.public-page {
  max-width: none;
  color: var(--ink);
}

.public-page > * {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.public-brand {
  display: block;
  color: var(--mint);
  font-weight: 600;
  text-decoration: none;
  margin-bottom: 24px;
}

.public-page h1 { margin-bottom: 8px; }

.public-page h2 {
  margin: 32px 0 12px;
  font-size: 1.1rem;
  color: var(--ink-soft);
}

.public-lede { color: var(--ink-soft); }
.public-note { color: var(--muted); font-size: 0.9rem; margin-top: 12px; }
.public-message { color: var(--muted); }
.public-message:empty { display: none; }

.public-table {
  width: 100%;
  border-collapse: collapse;
}

.public-table th,
.public-table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

.public-table th { color: var(--muted); font-weight: 500; font-size: 0.85rem; }
.public-table .num { text-align: right; font-variant-numeric: tabular-nums; }

.alliance-swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 8px;
  border-radius: var(--radius-tag);
  vertical-align: baseline;
}

.scene-map {
  position: relative;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-ctl);
  background: var(--glass-tile);
}

.scene-map span {
  position: absolute;
  border-radius: 2px;
}

.public-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.public-list li {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.public-list time {
  display: block;
  color: var(--muted);
  font-size: 0.8rem;
}

.public-cta { margin-top: 32px; text-align: center; }

.public-page .site-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
  margin-top: 24px;
  font-size: 0.85rem;
}

.public-page .site-legal a { color: var(--muted); }
