/* ─── Formulare: Buttons, Inputs, Credential-Test, admin-field/admin-form, Anlage-Assistent ─── */

/* Buttons */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 10px 20px;
  border: none;
  border-radius: var(--radius-md);
  font-family: var(--font);
  font-size: var(--fs-base);
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition-fast);
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.btn:focus-visible {
  box-shadow: 0 0 0 2px var(--bg-primary), 0 0 0 4px var(--text-secondary);
}

.btn-primary {
  background: var(--text-primary);
  color: var(--text-inverse);
}

.btn-primary:hover {
  opacity: 0.85;
}

.btn-primary:active {
  transform: scale(0.97);
}

.btn-primary:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  transform: none;
}

.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  padding: var(--space-2);
}

.btn-ghost:hover {
  color: var(--text-primary);
}

/* Input */

.input-field {
  width: 100%;
  padding: 10px 14px;
  background: var(--bg-tertiary);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text-primary);
  font-family: var(--font);
  font-size: var(--fs-input);
  outline: none;
  transition: border-color var(--transition-fast);
}

.input-field:focus {
  border-color: var(--border-strong);
}

.input-field::placeholder {
  color: var(--text-muted);
}

/* Credential Test */

.btn-outline {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font);
  font-size: var(--fs-xs);
  font-weight: 500;
  padding: 3px 10px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  white-space: nowrap;
  transition: all var(--transition-fast);
  flex-shrink: 0;
}

.btn-outline:hover:not(:disabled) {
  color: var(--text-secondary);
  border-color: var(--border-strong);
}

.btn-outline:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.cred-test-result {
  font-size: var(--fs-xs);
  line-height: 1.4;
  min-height: 0;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  transition: all 150ms ease;
  overflow: hidden;
}

.cred-test-result:empty {
  display: none;
}

.cred-test-result.testing {
  color: var(--text-muted);
  padding: 3px 0;
}

.cred-test-result.ok {
  color: var(--success);
  padding: 3px 0;
}

.cred-test-result.warning {
  color: #f59e0b;
  padding: 3px 0;
}

.cred-test-result.invalid,
.cred-test-result.error {
  color: var(--error);
  padding: 3px 0;
}

.cred-test-spinner {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 2px solid var(--border);
  border-top-color: var(--text-muted);
  border-radius: 50%;
  animation: cred-spin 600ms linear infinite;
  flex-shrink: 0;
}

@keyframes cred-spin {
  to { transform: rotate(360deg); }
}

/* Fields */

.admin-field {
  margin-bottom: var(--space-3);
}

.admin-field:last-child {
  margin-bottom: 0;
}

.admin-label {
  display: block;
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--text-muted);
  margin-bottom: var(--space-1);
}

.admin-value {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  margin: 0;
}

.admin-input {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  background: var(--bg-tertiary);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text-primary);
  font-family: var(--font);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--transition-fast);
  box-sizing: border-box;
}

.admin-input:focus {
  border-color: var(--border-strong);
}

.admin-input::placeholder {
  color: var(--text-muted);
}

.admin-select {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  background: var(--bg-tertiary);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text-primary);
  font-family: var(--font);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--transition-fast);
  box-sizing: border-box;
  cursor: pointer;
}

.admin-select:focus {
  border-color: var(--border-strong);
}

.admin-select option {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

.admin-row-inline {
  display: flex;
  gap: var(--space-3);
}

.admin-form {
  display: flex;
  flex-direction: column;
}

.admin-btn-row {
  display: flex;
  gap: var(--space-2);
  margin-top: var(--space-1);
}

.admin-msg {
  font-size: var(--fs-sm);
  min-height: 1.2em;
  margin-bottom: var(--space-1);
}

.admin-msg-error { color: var(--error); }

.admin-msg-success { color: var(--success); }

.admin-muted {
  color: var(--text-muted);
  font-size: var(--fs-sm);
}

.admin-muted-sm {
  color: var(--text-muted);
  font-size: 12px;
}

@media (max-width: 600px) {
  .admin-row-inline {
    flex-direction: column;
    gap: 0;
  }
}

/* ── Anlage-Assistent für neue Projekte (Admin) ───────────────────────── */

.wiz-steps {
  display: flex;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}

.wiz-step {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: var(--fs-xs);
  color: var(--text-muted);
}

.wiz-step + .wiz-step::before {
  content: '';
  width: 16px;
  height: 1px;
  background: var(--border);
  margin-right: 3px;
}

.wiz-step > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--border);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.wiz-step.active { color: var(--text-primary); font-weight: 600; }

.wiz-step.active > span { border-color: var(--accent, #3b5cf6); color: var(--accent, #3b5cf6); }

.wiz-step.done > span {
  border-color: transparent;
  background: var(--accent-muted, rgba(59, 92, 246, 0.15));
  color: var(--text-secondary);
}

.wiz-advanced > summary {
  cursor: pointer;
  font-size: var(--fs-xs);
  color: var(--text-muted);
  padding: 6px 0;
  user-select: none;
}

.wiz-advanced > summary:hover { color: var(--text-secondary); }

.wiz-questions:empty { display: none; }

.wiz-code {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: var(--fs-xs);
  line-height: 1.55;
  resize: vertical;
}

.wiz-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-1);
}
