// =============================================================================
// CorrectionsPage — a caveat banner, two tabs, filter rows, suggestion cards
// with editable textareas, the snippet + retrain panels, and the raw
// corrections table.
// =============================================================================

.corrections-caveat {
  margin: 0 0 var(--space-lg);
  padding: var(--space-sm) var(--space-md);
  border-left: 4px solid var(--color-warning);
  background: color-mix(in srgb, var(--color-warning) 12%, var(--color-surface));
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

.corrections-tabs {
  display: flex;
  gap: var(--space-xs);
  margin-bottom: var(--space-lg);

  button {
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text-muted);
    background: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-base);
    cursor: pointer;

    &.active {
      color: var(--color-primary);
      border-color: var(--color-primary);
      background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
    }
  }
}

.corrections-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-bottom: var(--space-md);

  label {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
  }

  select {
    padding: var(--space-xs) var(--space-sm);
    font-family: var(--font-body);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-base);
    background: var(--color-surface);
    color: var(--color-text);
  }
}

.corrections-panel {
  margin-bottom: var(--space-lg);
  padding: var(--space-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);

  h2 {
    font-size: var(--font-size-md);
    margin-bottom: var(--space-xs);
  }

  p {
    margin: 0 0 var(--space-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
  }

  &--retrain {
    border-left: 4px solid var(--color-accent);
  }

  &__row {
    display: flex;
    gap: var(--space-sm);

    input {
      flex: 1;
      padding: var(--space-xs) var(--space-sm);
      font-family: var(--font-body);
      border: 1px solid var(--color-border);
      border-radius: var(--radius-base);
      background: var(--color-surface);
      color: var(--color-text);
    }
  }

  button {
    padding: var(--space-xs) var(--space-md);
    font-family: var(--font-body);
    font-weight: 600;
    color: var(--color-surface);
    background: var(--color-primary);
    border: none;
    border-radius: var(--radius-base);
    cursor: pointer;

    &:hover {
      background: var(--color-primary-hover);
    }
    &:disabled {
      opacity: 0.6;
      cursor: not-allowed;
    }
  }
}

.corrections-snippet {
  width: 100%;
  margin-top: var(--space-sm);
  padding: var(--space-sm);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-base);
  background: var(--color-surface-alt);
  color: var(--color-text);
  resize: vertical;
}

.retrain-result {
  margin-top: var(--space-sm);
  font-weight: 600;
  &--ok {
    color: var(--color-success);
  }
  &--fail {
    color: var(--color-error);
  }
}

.suggestion-group {
  margin-bottom: var(--space-lg);

  h2 {
    font-size: var(--font-size-md);
    margin-bottom: var(--space-sm);
  }
}

.suggestion-card {
  margin-bottom: var(--space-sm);
  padding: var(--space-md);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-border);
  border-radius: var(--radius-md);

  &--applied {
    border-left-color: var(--color-success);
  }
  &--rejected {
    border-left-color: var(--color-error);
  }
  &--pending {
    border-left-color: var(--color-warning);
  }

  &__meta {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
  }

  &__source {
    margin: var(--space-xs) 0 var(--space-sm);
    font-size: var(--font-size-sm);
  }

  &__clause {
    font-style: italic;
    color: var(--color-text);
  }

  label {
    display: block;
    margin-bottom: var(--space-sm);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
  }

  textarea {
    width: 100%;
    margin-top: 0.15rem;
    padding: var(--space-xs) var(--space-sm);
    font-family: var(--font-mono);
    font-size: var(--font-size-xs);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-base);
    background: var(--color-surface);
    color: var(--color-text);
    resize: vertical;
  }

  &__error {
    margin: 0 0 var(--space-sm);
    font-size: var(--font-size-sm);
    color: var(--color-error);
  }

  &__actions {
    display: flex;
    gap: var(--space-sm);

    button {
      padding: var(--space-xs) var(--space-md);
      font-family: var(--font-body);
      font-size: var(--font-size-sm);
      font-weight: 600;
      border: 1px solid var(--color-border);
      border-radius: var(--radius-base);
      background: var(--color-surface);
      color: var(--color-text);
      cursor: pointer;

      &:hover {
        border-color: var(--color-primary);
      }
      &:disabled {
        opacity: 0.5;
        cursor: not-allowed;
      }
    }
  }
}

.corrections-table-wrap {
  overflow-x: auto;
}

.corrections-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);

  th,
  td {
    padding: var(--space-xs) var(--space-sm);
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
  }

  th {
    color: var(--color-text-muted);
    font-weight: 600;
  }

  &__clause {
    font-style: italic;
    max-width: 28rem;
  }
}
