/* Lyx Help Center - app styles (built on the shared design system) */

.help-body {
  background-color: var(--color-bg-primary);
}

/* ---------- Header ---------- */
.help-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background-color: rgba(10, 10, 15, 0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--color-border-subtle);
}

.header-inner {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  height: var(--header-height);
  max-width: 1400px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-semibold);
  flex-shrink: 0;
}

.logo-icon {
  color: var(--color-primary);
  width: 32px;
  height: 32px;
}

.logo-text {
  font-size: var(--font-size-lg);
}

.help-nav {
  flex: 1;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-link {
  display: inline-block;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.nav-link:hover {
  color: var(--color-text-primary);
  background-color: var(--color-bg-hover);
}

.nav-link.active {
  color: var(--color-primary);
  background-color: var(--color-primary-muted);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-shrink: 0;
}

.search-box {
  position: relative;
  display: flex;
  align-items: center;
}

.search-box .search-icon {
  position: absolute;
  left: var(--space-3);
  color: var(--color-text-muted);
  pointer-events: none;
}

.search-box .search-input {
  width: 240px;
  padding-left: var(--space-10);
  padding-right: var(--space-10);
  height: 38px;
}

.search-hint {
  position: absolute;
  right: var(--space-2);
  font-family: var(--font-family-mono);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  background-color: var(--color-bg-tertiary);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  padding: 2px 6px;
  pointer-events: none;
}

.mobile-menu-btn {
  display: none;
  color: var(--color-text-primary);
  padding: var(--space-2);
}

.mobile-menu {
  display: none;
  border-top: 1px solid var(--color-border-subtle);
  background-color: var(--color-bg-secondary);
  padding: var(--space-4) var(--space-6);
}

.mobile-menu[hidden] {
  display: none;
}

.mobile-menu:not([hidden]) {
  display: block;
}

.mobile-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mobile-nav-link {
  display: block;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
}

.mobile-nav-divider {
  height: 1px;
  background-color: var(--color-border-subtle);
  margin: var(--space-2) 0;
}

/* ---------- Shell + sidebar ---------- */
.help-shell {
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  gap: var(--space-10);
  max-width: 1400px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-6) var(--space-16);
  align-items: start;
}

.help-sidebar {
  position: sticky;
  top: calc(var(--header-height) + var(--space-6));
  max-height: calc(100vh - var(--header-height) - var(--space-10));
  overflow-y: auto;
  padding-right: var(--space-2);
}

.help-sidebar-list,
.help-sidebar-sublist {
  list-style: none;
  padding: 0;
  margin: 0;
}

.help-sidebar-section {
  margin-bottom: var(--space-6);
}

.help-sidebar-heading {
  display: block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.help-sidebar-sublist {
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-left: 1px solid var(--color-border-subtle);
}

.help-sidebar-link {
  display: block;
  padding: var(--space-2) var(--space-3);
  margin-left: -1px;
  border-left: 2px solid transparent;
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.help-sidebar-link:hover {
  color: var(--color-text-primary);
}

.help-sidebar-link.active {
  color: var(--color-primary);
  border-left-color: var(--color-primary);
  font-weight: var(--font-weight-medium);
}

.help-content {
  min-width: 0;
}

/* ---------- Hero ---------- */
.help-hero {
  padding: var(--space-16) 0 var(--space-12);
  border-bottom: 1px solid var(--color-border-subtle);
  background:
    radial-gradient(60% 120% at 50% 0%, var(--color-primary-muted), transparent 70%);
}

.help-hero-compact {
  padding: var(--space-12) 0 var(--space-8);
}

.hero-content {
  max-width: var(--max-width-prose);
}

.hero-title {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--space-4);
}

.hero-description {
  font-size: var(--font-size-lg);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
}

.hero-actions {
  display: flex;
  gap: var(--space-4);
  flex-wrap: wrap;
}

/* ---------- Sections ---------- */
.help-categories,
.help-quick-links,
.help-search-section,
.help-cta,
.help-search-results {
  padding: var(--space-12) 0;
}

.section-header {
  text-align: center;
  margin-bottom: var(--space-10);
}

.section-title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--space-3);
}

.section-description {
  color: var(--color-text-secondary);
}

/* ---------- Category grid ---------- */
.categories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-5);
}

.category-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  background-color: var(--color-bg-card);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-xl);
  transition: transform var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.category-card:hover {
  transform: translateY(-2px);
  border-color: var(--color-border-strong);
  background-color: var(--color-bg-hover);
}

.category-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg);
  background-color: var(--color-primary-muted);
  color: var(--color-primary);
}

.category-title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.category-description {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  margin: 0;
  flex: 1;
}

.category-link {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

/* ---------- Search ---------- */
.search-card {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.search-title {
  font-size: var(--font-size-2xl);
  margin-bottom: var(--space-3);
}

.search-description {
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
}

.search-form {
  display: flex;
  gap: var(--space-3);
  max-width: 640px;
  margin: 0 auto;
  align-items: center;
}

.search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1;
}

.search-input-wrapper .search-icon {
  position: absolute;
  left: var(--space-4);
  color: var(--color-text-muted);
  pointer-events: none;
}

.search-input-large {
  width: 100%;
  height: 48px;
  padding-left: var(--space-12);
  padding-right: var(--space-12);
}

/* ---------- Quick links ---------- */
.quick-links-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-3);
}

.quick-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-card);
  transition: color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.quick-link:hover {
  color: var(--color-text-primary);
  border-color: var(--color-primary);
  background-color: var(--color-bg-hover);
}

.quick-link svg {
  color: var(--color-primary);
  flex-shrink: 0;
}

/* ---------- CTA ---------- */
.cta-content {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
  padding: var(--space-12) var(--space-8);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-2xl);
  background:
    radial-gradient(80% 120% at 50% 0%, var(--color-primary-muted), transparent 70%),
    var(--color-bg-card);
}

.cta-title {
  font-size: var(--font-size-3xl);
  margin-bottom: var(--space-3);
}

.cta-description {
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
}

/* ---------- Docs (guides) ---------- */
.doc-breadcrumbs {
  border-bottom: 1px solid var(--color-border-subtle);
  background-color: var(--color-bg-secondary);
}

.breadcrumbs {
  display: flex;
  gap: var(--space-2);
  list-style: none;
  padding: var(--space-3) 0;
  margin: 0;
  font-size: var(--font-size-sm);
}

.breadcrumbs li:not(:last-child)::after {
  content: '/';
  margin-left: var(--space-2);
  color: var(--color-text-muted);
}

.breadcrumbs a {
  color: var(--color-text-secondary);
}

.doc-header {
  padding: var(--space-10) 0 var(--space-6);
}

.doc-title {
  font-size: var(--font-size-4xl);
  margin-bottom: var(--space-3);
}

.doc-description {
  font-size: var(--font-size-lg);
  color: var(--color-text-secondary);
  margin: 0;
}

.doc-toc {
  padding: var(--space-5) var(--space-6);
  margin-bottom: var(--space-8);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  background-color: var(--color-bg-card);
}

.doc-toc h3 {
  font-size: var(--font-size-sm);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.toc-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: var(--space-8);
}

.toc-nav a {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
}

.toc-nav a:hover {
  color: var(--color-primary);
}

.doc-content {
  max-width: var(--max-width-prose);
  padding-bottom: var(--space-12);
}

.doc-content section {
  margin-bottom: var(--space-10);
  scroll-margin-top: calc(var(--header-height) + var(--space-6));
}

.doc-content h2 {
  font-size: var(--font-size-2xl);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border-subtle);
}

.doc-content h3 {
  font-size: var(--font-size-xl);
  margin: var(--space-6) 0 var(--space-3);
}

.doc-content p + p {
  margin-top: var(--space-3);
}

.command-perms {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.callout {
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-subtle);
  border-left-width: 3px;
  margin: var(--space-5) 0;
  background-color: var(--color-bg-card);
  color: var(--color-text-secondary);
}

.callout strong {
  color: var(--color-text-primary);
}

.callout-info {
  border-left-color: var(--color-info);
  background-color: var(--color-info-muted);
}

.callout-tip {
  border-left-color: var(--color-success);
  background-color: var(--color-success-muted);
}

.callout-warning {
  border-left-color: var(--color-warning);
  background-color: var(--color-warning-muted);
}

.doc-content details {
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  margin-bottom: var(--space-3);
  background-color: var(--color-bg-card);
}

.doc-content summary {
  cursor: pointer;
  color: var(--color-text-primary);
}

.doc-content details p {
  margin: var(--space-3) 0 0;
}

@media (max-width: 640px) {
  .toc-nav ul {
    columns: 1;
  }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .search-box {
    display: none;
  }
}

@media (max-width: 960px) {
  .help-nav {
    display: none;
  }

  .mobile-menu-btn {
    display: inline-flex;
    margin-left: auto;
  }

  .help-shell {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .help-sidebar {
    display: none;
  }
}

/* ---------- Changelog ---------- */
.changelog-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: var(--max-width-prose);
}

.changelog-card {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  background-color: var(--color-bg-card);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  transition: border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);
}

.changelog-card:hover {
  border-color: var(--color-primary);
  background-color: var(--color-bg-hover);
  transform: translateY(-1px);
}

.changelog-card-main { flex: 1; min-width: 0; }

.changelog-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.changelog-version {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
  background-color: var(--color-primary-muted);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
}

.changelog-tag {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  text-transform: capitalize;
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border-default);
  color: var(--color-text-secondary);
}

.changelog-tag-feature { color: var(--color-success); border-color: rgba(50, 215, 75, 0.4); background: var(--color-success-muted); }
.changelog-tag-fix { color: var(--color-info); border-color: rgba(10, 132, 255, 0.4); background: var(--color-info-muted); }
.changelog-tag-improvement { color: var(--color-warning); border-color: rgba(255, 214, 10, 0.4); background: var(--color-warning-muted); }

.changelog-date {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  margin-left: auto;
}

.changelog-card-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-1);
}

.changelog-card-summary {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  margin: 0;
}

.changelog-card-arrow {
  color: var(--color-text-muted);
  font-size: var(--font-size-xl);
  transition: color var(--transition-fast), transform var(--transition-fast);
  flex-shrink: 0;
}

.changelog-card:hover .changelog-card-arrow {
  color: var(--color-primary);
  transform: translateX(3px);
}

.changelog-empty { color: var(--color-text-muted); }

.changelog-back {
  display: inline-block;
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-4);
}

.changelog-back:hover { color: var(--color-primary); }

.changelog-entry { max-width: var(--max-width-prose); }

.changelog-entry h2 {
  font-size: var(--font-size-2xl);
  margin-top: var(--space-10);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border-subtle);
}

.changelog-entry h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

.changelog-entry h3 {
  font-size: var(--font-size-lg);
  margin-top: var(--space-6);
}

.changelog-entry ul { padding-left: var(--space-6); }
.changelog-entry li { margin-bottom: var(--space-2); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); }
.changelog-entry a { color: var(--color-primary); }

.changelog-entry code {
  font-family: var(--font-family-mono);
  font-size: 0.85em;
  background-color: var(--color-bg-tertiary);
  padding: 1px 6px;
  border-radius: var(--radius-sm);
  color: var(--color-text-primary);
}

.changelog-entry blockquote {
  border-left: 3px solid var(--color-primary);
  padding-left: var(--space-4);
  margin: var(--space-4) 0;
  color: var(--color-text-secondary);
}

.changelog-entry hr {
  border: 0;
  border-top: 1px solid var(--color-border-subtle);
  margin: var(--space-8) 0;
}

.changelog-nav {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  max-width: var(--max-width-prose);
  margin-top: var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--color-border-subtle);
}

.changelog-nav-link {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-4);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  max-width: 48%;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.changelog-nav-link:hover { border-color: var(--color-primary); background-color: var(--color-bg-hover); }
.changelog-nav-next { margin-left: auto; text-align: right; }
.changelog-nav-label { font-size: var(--font-size-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.changelog-nav-title { font-size: var(--font-size-sm); color: var(--color-text-primary); font-weight: var(--font-weight-medium); }

/* ==========================================
   OFFER WALL (AdGem partner-built)
   ========================================== */
.page-hero { max-width: 760px; padding: var(--space-10) 0 var(--space-8); }
.page-hero .eyebrow { font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--color-primary); text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 var(--space-3); }
.page-hero h1 { font-size: var(--font-size-4xl); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 var(--space-4); line-height: var(--line-height-tight); }
.page-hero .lede { font-size: var(--font-size-lg); color: var(--color-text-secondary); margin: 0; line-height: var(--line-height-relaxed); }
.page-hero .lede strong { color: var(--color-text-primary); font-weight: var(--font-weight-semibold); }

.session-banner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; padding: var(--space-4) var(--space-5); border-radius: var(--radius-lg); border: 1px solid var(--color-border-subtle); background-color: var(--color-bg-card); font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-bottom: var(--space-8); }
.session-banner code { font-family: var(--font-family-mono); font-size: var(--font-size-xs); background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-sm); padding: 1px 5px; color: var(--color-text-primary); }
.session-banner strong { color: var(--color-text-primary); font-weight: var(--font-weight-semibold); }
.banner-signed { border-color: var(--color-success-muted); background-color: rgba(50, 215, 75, 0.06); }
.banner-anon { border-color: var(--color-warning-muted); background-color: rgba(255, 214, 10, 0.05); }

.offers-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
.filter-row { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.filter-chip { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-full); padding: var(--space-2) var(--space-4); cursor: pointer; transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); }
.filter-chip:hover { color: var(--color-text-primary); background-color: var(--color-bg-hover); }
.filter-chip.active { color: var(--color-text-inverse); background-color: var(--color-primary); border-color: var(--color-primary); }
.btn-refresh { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); background-color: transparent; border: 1px solid var(--color-border-default); border-radius: var(--radius-md); padding: var(--space-2) var(--space-4); cursor: pointer; transition: color var(--transition-fast), border-color var(--transition-fast); }
.btn-refresh:hover:not(:disabled) { color: var(--color-text-primary); border-color: var(--color-primary); }
.btn-refresh:disabled { opacity: 0.5; cursor: default; }

.offer-loading { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-10) 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }
.spinner { width: 16px; height: 16px; border: 2px solid var(--color-border-default); border-top-color: var(--color-primary); border-radius: var(--radius-full); animation: offer-spin 0.7s linear infinite; }
@keyframes offer-spin { to { transform: rotate(360deg); } }

.offer-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--space-5); min-height: 120px; }

.offer-card { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); background-color: var(--color-bg-card); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); transition: border-color var(--transition-fast), transform var(--transition-fast); }
.offer-card:hover { border-color: var(--color-border-strong); transform: translateY(-2px); }

.offer-head { display: flex; align-items: flex-start; gap: var(--space-3); }
.offer-icon { width: 48px; height: 48px; border-radius: var(--radius-md); object-fit: cover; flex-shrink: 0; background-color: var(--color-bg-tertiary); }
.offer-headtext { flex: 1; min-width: 0; }
.offer-name { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 2px; line-height: var(--line-height-tight); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.offer-tag { font-size: var(--font-size-xs); color: var(--color-text-muted); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.offer-coins { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; text-align: right; }
.coin-amount { font-family: var(--font-family-mono); font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--color-warning); line-height: var(--line-height-tight); }
.coin-unit { font-size: var(--font-size-xs); color: var(--color-text-muted); }

.offer-hero { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); background-color: var(--color-bg-tertiary); }
.offer-desc { font-size: var(--font-size-sm); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); margin: 0; }
.offer-reqs { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; padding-left: var(--space-5); font-size: var(--font-size-xs); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); }
.offer-reqs:empty { display: none; }
.offer-disclaimer { font-size: var(--font-size-xs); color: var(--color-warning); background-color: var(--color-warning-muted); border-radius: var(--radius-sm); padding: var(--space-2) var(--space-3); margin: 0; line-height: var(--line-height-relaxed); }

.offer-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: auto; }
.pill { display: inline-flex; align-items: center; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); border-radius: var(--radius-full); padding: 2px var(--space-3); }
.pill-plain { color: var(--color-text-secondary); background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); }
.diff-easy { color: var(--color-success); background-color: var(--color-success-muted); }
.diff-med { color: var(--color-warning); background-color: var(--color-warning-muted); }
.diff-hard { color: var(--color-error); background-color: var(--color-error-muted); }
.diff-expert { color: var(--color-info); background-color: var(--color-info-muted); }

.offer-foot-note { font-size: var(--font-size-xs); color: var(--color-text-muted); margin: 0; line-height: var(--line-height-relaxed); }
.offer-actions { display: flex; gap: var(--space-2); }
.btn-start { flex: 1; font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text-inverse); background-color: var(--color-primary); border: 1px solid var(--color-primary); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); cursor: pointer; transition: background-color var(--transition-fast); }
.btn-start:hover { background-color: var(--color-primary-hover); border-color: var(--color-primary-hover); }
.btn-support { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); background-color: transparent; border: 1px solid var(--color-border-default); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); cursor: pointer; transition: color var(--transition-fast), border-color var(--transition-fast); }
.btn-support:hover { color: var(--color-text-primary); border-color: var(--color-border-strong); }

.offer-empty { text-align: center; padding: var(--space-16) var(--space-6); border: 1px dashed var(--color-border-default); border-radius: var(--radius-lg); }
.empty-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 var(--space-2); }
.empty-body { font-size: var(--font-size-sm); color: var(--color-text-muted); margin: 0; }

.offer-pager { display: flex; align-items: center; justify-content: center; gap: var(--space-5); margin-top: var(--space-8); }
.btn-page { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-md); padding: var(--space-2) var(--space-4); cursor: pointer; transition: color var(--transition-fast), border-color var(--transition-fast); }
.btn-page:hover:not(:disabled) { color: var(--color-text-primary); border-color: var(--color-primary); }
.btn-page:disabled { opacity: 0.4; cursor: default; }
.page-label { font-size: var(--font-size-sm); color: var(--color-text-muted); font-variant-numeric: tabular-nums; }

.history-section, .how-section { margin-top: var(--space-16); max-width: var(--max-width-prose); }
.section-head { margin-bottom: var(--space-6); }
.section-head h2 { font-size: var(--font-size-2xl); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 var(--space-2); }
.section-head p { font-size: var(--font-size-sm); color: var(--color-text-muted); margin: 0; }

.history-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); overflow: hidden; background-color: var(--color-bg-card); }
.history-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--color-border-subtle); font-size: var(--font-size-sm); }
.history-row:last-child { border-bottom: none; }
.history-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.history-name { font-weight: var(--font-weight-semibold); color: var(--color-text-primary); }
.history-goal { font-size: var(--font-size-xs); color: var(--color-text-muted); }
.history-when { font-size: var(--font-size-xs); color: var(--color-text-muted); white-space: nowrap; }
.history-award { font-family: var(--font-family-mono); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-success); white-space: nowrap; }
.history-empty { font-size: var(--font-size-sm); color: var(--color-text-muted); margin: 0; padding: var(--space-6); text-align: center; border: 1px dashed var(--color-border-default); border-radius: var(--radius-lg); }

.how-steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-5); }
.how-steps li { counter-increment: step; display: flex; flex-direction: column; gap: var(--space-1); padding-left: var(--space-10); position: relative; }
.how-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--radius-full); background-color: var(--color-primary-muted); color: var(--color-primary); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); }
.how-steps strong { font-size: var(--font-size-base); color: var(--color-text-primary); font-weight: var(--font-weight-semibold); }
.how-steps code { font-family: var(--font-family-mono); font-size: 0.9em; background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-sm); padding: 1px 5px; color: var(--color-primary); }
.how-steps span { font-size: var(--font-size-sm); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); }

.callout { margin-top: var(--space-8); padding: var(--space-5) var(--space-6); background-color: var(--color-bg-card); border: 1px solid var(--color-border-subtle); border-left: 3px solid var(--color-warning); border-radius: var(--radius-lg); }
.callout h3 { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 var(--space-3); }
.callout ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.callout li { position: relative; padding-left: var(--space-5); font-size: var(--font-size-sm); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); }
.callout li::before { content: "\2022"; position: absolute; left: var(--space-2); color: var(--color-warning); }

@media (max-width: 768px) {
  .page-hero h1 { font-size: var(--font-size-3xl); }
  .page-hero .lede { font-size: var(--font-size-base); }
  .offer-grid { grid-template-columns: 1fr; }
  .offers-toolbar { flex-direction: column; align-items: stretch; }
  .history-row { grid-template-columns: 1fr; gap: var(--space-2); }
  .history-when, .history-award { text-align: left; }
}

/* ---------- Offer wall: coming soon ---------- */
.coming-soon-banner { display: flex; align-items: flex-start; gap: var(--space-5); padding: var(--space-6); margin-bottom: var(--space-8); background-color: var(--color-bg-card); border: 1px solid var(--color-border-subtle); border-left: 3px solid var(--color-primary); border-radius: var(--radius-lg); flex-wrap: wrap; }
.coming-soon-badge { flex-shrink: 0; font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--color-primary); background-color: var(--color-primary-muted); border-radius: var(--radius-full); padding: var(--space-2) var(--space-4); text-transform: uppercase; letter-spacing: 0.06em; white-space: nowrap; }
.coming-soon-body { flex: 1; min-width: 240px; }
.coming-soon-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); margin: 0 0 var(--space-2); }
.coming-soon-text { font-size: var(--font-size-sm); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); margin: 0; }
.coming-soon-text code { font-family: var(--font-family-mono); font-size: 0.9em; background-color: var(--color-bg-tertiary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-sm); padding: 1px 5px; color: var(--color-primary); }

