*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  max-width: 1280px;
  margin: 24px auto;
  padding: 0 16px;
  font-family: Arial, sans-serif;
  background: var(--surface-2);
  color: var(--text);
}

h1 {
  margin: 0 0 4px;
}

h3 {
  margin: 0 0 10px;
}

.muted {
  color: var(--muted);
  font-size: 0.88em;
}

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 16px;
  border-radius: 10px;
  margin: 10px 0;
}

.card.active {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(235, 71, 153, .15);
}

button {
  cursor: pointer;
  padding: 6px 14px;
  border-radius: 6px;
  border: 1px solid var(--border-strong);
  background: var(--surface-2);
  font-size: 0.9em;
}

button:hover:not(:disabled) {
  background: var(--surface-3);
}

button:disabled {
  opacity: .4;
  cursor: not-allowed;
}

button.primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary-strong);
}

button.primary:hover:not(:disabled) {
  background: var(--primary-strong);
}

button.extract {
  background: #16a34a;
  color: #fff;
  border-color: #15803d;
}

button.extract:hover:not(:disabled) {
  background: #15803d;
}

button.danger {
  background: #dc2626;
  color: #fff;
  border-color: #b91c1c;
}

button.danger:hover:not(:disabled) {
  background: #b91c1c;
}

.row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

#status {
  min-height: 1.2em;
  font-size: 0.9em;
  color: var(--text-2);
}
