.cleanify-button {
	display: inline-flex; min-height: 2.875rem; align-items: center; justify-content: center; gap: var(--cleanify-space-sm);
	border: 1px solid transparent; border-radius: var(--cleanify-radius-button); cursor: pointer;
	font: var(--cleanify-weight-semibold) var(--cleanify-type-small) / 1.2 var(--cleanify-font-family);
	padding: 0.75rem 1.125rem; text-align: center; text-decoration: none;
	transition: background-color var(--cleanify-motion-fast) var(--cleanify-motion-ease), border-color var(--cleanify-motion-fast) var(--cleanify-motion-ease), color var(--cleanify-motion-fast) var(--cleanify-motion-ease), transform var(--cleanify-motion-fast) var(--cleanify-motion-ease);
}
.cleanify-button:hover { transform: translateY(-1px); }
.cleanify-button:active { transform: translateY(0); }
.cleanify-button:disabled, .cleanify-button[aria-disabled="true"] { cursor: not-allowed; opacity: 0.55; transform: none; }
.cleanify-button--primary { border-color: var(--cleanify-color-brand); background: var(--cleanify-color-brand); color: var(--cleanify-color-brand-ink); }
.cleanify-button--primary:hover { border-color: #91E20B; background: #91E20B; color: var(--cleanify-color-brand-ink); }
.cleanify-button--secondary { border-color: var(--cleanify-color-border); background: var(--cleanify-color-surface); color: var(--cleanify-color-text); }
.cleanify-button--secondary:hover { border-color: var(--cleanify-color-text-secondary); background: var(--cleanify-color-surface-subtle); color: var(--cleanify-color-text); }
.cleanify-button--ghost { border-color: transparent; background: transparent; color: var(--cleanify-color-text); }
.cleanify-button--ghost:hover { background: var(--cleanify-color-surface-subtle); }
.cleanify-button--text { min-height: auto; border: 0; background: transparent; color: var(--cleanify-color-accent); padding: 0; text-decoration: underline; text-underline-offset: 0.18em; }
.cleanify-button--text:hover { color: var(--cleanify-color-secondary); }
.cleanify-card { min-width: 0; border: 1px solid var(--cleanify-color-border); border-radius: var(--cleanify-radius-card); background: var(--cleanify-color-surface); padding: var(--cleanify-space-lg); }
.cleanify-card--elevated { box-shadow: var(--cleanify-shadow-elevated); }
.cleanify-card--feature { border-color: color-mix(in srgb, var(--cleanify-color-secondary) 20%, var(--cleanify-color-border)); background: var(--cleanify-color-surface-subtle); }
.cleanify-card--information { background: var(--cleanify-color-background); }
.cleanify-badge { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; background: var(--cleanify-color-surface-subtle); color: var(--cleanify-color-text-secondary); font-size: var(--cleanify-type-caption); font-weight: var(--cleanify-weight-semibold); line-height: 1.2; padding: 0.375rem 0.625rem; }
.cleanify-badge--success { background: #E8F5ED; color: var(--cleanify-color-success); }
.cleanify-badge--warning { background: #FFF5D8; color: var(--cleanify-color-warning); }
.cleanify-badge--error { background: #FCE9E8; color: var(--cleanify-color-error); }
.cleanify-badge--brand { background: var(--cleanify-color-brand); color: var(--cleanify-color-brand-ink); }
.cleanify-price { color: var(--cleanify-color-text); font-size: var(--cleanify-type-h4); font-weight: var(--cleanify-weight-semibold); }
.cleanify-form label { display: block; margin-block-end: var(--cleanify-space-xs); color: var(--cleanify-color-text); font-size: var(--cleanify-type-small); font-weight: var(--cleanify-weight-medium); }
.cleanify-form input:not([type="checkbox"]):not([type="radio"]), .cleanify-form select, .cleanify-form textarea {
	width: 100%; min-height: 2.875rem; border: 1px solid var(--cleanify-color-border); border-radius: var(--cleanify-radius-control); background: var(--cleanify-color-surface); color: var(--cleanify-color-text); font: inherit; padding: 0.7rem 0.875rem;
}
.cleanify-form textarea { min-height: 8rem; resize: vertical; }
.cleanify-form input[type="checkbox"], .cleanify-form input[type="radio"] { accent-color: var(--cleanify-color-accent); }
.cleanify-form :is(input, select, textarea):focus-visible { border-color: var(--cleanify-color-secondary); outline: 3px solid color-mix(in srgb, var(--cleanify-color-secondary) 22%, transparent); outline-offset: 1px; }
.cleanify-form :is(input, select, textarea)[aria-invalid="true"], .cleanify-form .is-error { border-color: var(--cleanify-color-error); }
.cleanify-form__error { color: var(--cleanify-color-error); font-size: var(--cleanify-type-small); }
.cleanify-form__hint { color: var(--cleanify-color-text-muted); font-size: var(--cleanify-type-small); }
@media (prefers-reduced-motion: reduce) { .cleanify-button { transition: none; } .cleanify-button:hover { transform: none; } }
