.app-shell { min-height: 100vh; }

.topbar {
  position: sticky;
  z-index: 10;
  top: 0;
  display: flex;
  align-items: center;
  gap: var(--space-5);
  min-height: 72px;
  padding: 12px max(20px, calc((100vw - 1440px) / 2));
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: blur(12px);
}

.brand { display: grid; flex: 0 0 auto; line-height: 1.1; }
.brand strong { font-size: 20px; letter-spacing: -0.5px; }
.brand small { color: var(--text-muted); font-size: 12px; }

.primary-nav { display: flex; gap: 4px; overflow-x: auto; }
.app-main { width: min(1440px, 100%); margin: 0 auto; padding: 24px 20px 40px; }
.view-header { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 20px; }
.view-header p { color: var(--text-muted); }

.battle-grid { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(360px, 1.35fr) minmax(220px, 1fr); gap: 16px; align-items: start; }
.entry-column { min-height: 520px; }
.page-placeholder { max-width: 760px; }
