/* Защита от горизонтального скролла */
  html, body { overflow-x: hidden; max-width: 100vw; }

  .bg-light {
    background-color: var(--surfaceCard) !important;
    color: var(--textPrimary) !important;
  }

  .bg-dark {
    background-color: var(--surface) !important;
    color: var(--textPrimary) !important;
  }

  .table {
    color: var(--textPrimary);
    border-color: var(--surfaceBorder);
  }

  .table thead {
    background: var(--surfaceElevated);
    border-bottom: 2px solid var(--accent);
    color: var(--textPrimary);
  }

  .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--surfaceCard);
    color: var(--textPrimary);
  }

  .table > :not(caption) > * > * {
    background-color: transparent;
    color: var(--textPrimary);
    border-color: var(--borderSubtle);
  }

  .step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--gradientAccent);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 1rem;
    flex-shrink: 0;
  }

  .step-card {
    background: var(--surfaceCard);
    border: 1px solid var(--borderSubtle);
    border-radius: var(--radiusLg);
    padding: 1.5rem;
    transition: box-shadow 0.2s;
  }

  .step-card:hover {
    box-shadow: var(--shadowAccent);
  }

  .highlight-box {
    background: var(--gradientCard);
    border-left: 4px solid var(--accent);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--textPrimary);
  }

  .requirement-badge {
    display: inline-block;
    background: var(--surfaceElevated);
    border: 1px solid var(--borderSubtle);
    border-radius: var(--radius);
    padding: 0.3rem 0.75rem;
    font-size: 0.85rem;
    color: var(--textSecondary);
    margin: 0.25rem;
  }

  .cta-section {
    background: var(--gradientHero);
    border-radius: var(--radiusLg);
    padding: 2.5rem;
    text-align: center;
    border: 1px solid var(--borderSubtle);
  }

  .info-icon {
    font-size: 1.6rem;
    color: var(--accent);
    margin-bottom: 0.75rem;
    display: block;
  }

  .section-divider {
    border: none;
    border-top: 1px solid var(--borderSubtle);
    margin: 2.5rem 0;
  }