/* Shared buttons and action links. Page-specific placement and colours stay local. */
.unified .btn,
.unified .invitation-button {
  font: 500 13px/1.4 'Geist', system-ui, sans-serif;
  letter-spacing: 0;
  text-transform: none;
  min-height: 44px;
  padding: 12px 18px;
  border-radius: 2px;
}
.unified .btn-primary,
.unified .invitation-button,
.unified-tactical .closing .btn {
  background: var(--signal);
  border-color: var(--signal);
  color: var(--paper-1);
}
.unified .btn-primary:hover,
.unified .invitation-button:hover { background: #234541; border-color: #234541; }
.unified .btn-secondary { color: var(--ink-800); border-color: var(--line-strong); }

/* Content actions reveal their underline on hover; reading titles have their own rules. */
.unified .news-read,
.unified .technical-resource-table a,
.unified .text-link { text-decoration: none; text-underline-offset: 4px; }
.unified .news-read:hover,
.unified .technical-resource-table a:hover,
.unified .text-link:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* Only northeast link marks share this weight; diagram connections retain their own. */
.unified .link-arrow:has(path[d='M3.5 12.5L12.5 3.5M5.5 3.5H12.5V10.5']),
.unified .arrow:has(path[d='M3.5 12.5L12.5 3.5M5.5 3.5H12.5V10.5']),
.unified .platform-grid-link svg { stroke-width: 1.3; }
