.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:.625rem var(--space-4);border-radius:var(--radius-control);font-size:var(--font-size-body);transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #0000;font-weight:600;line-height:1.25rem;text-decoration:none;display:inline-flex}.ui-button--compact{min-height:2.25rem;padding:.4375rem var(--space-3)}.ui-button--primary{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-on-brand)}.ui-button--primary:hover:not(:disabled){border-color:var(--color-brand-dark);background:var(--color-brand-dark)}.ui-button--secondary{border-color:var(--color-line);background:var(--color-surface);color:var(--color-ink)}.ui-button--secondary:hover:not(:disabled),.ui-button--ghost:hover:not(:disabled){background:var(--color-hover)}.ui-button--ghost{color:var(--color-ink);background:0 0}.ui-button--danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-brand)}.ui-button--danger:hover:not(:disabled){background:var(--color-danger-soft);color:var(--color-danger)}.ui-button:active:not(:disabled){transform:translateY(1px)}.ui-button:disabled{border-color:var(--color-line);background:var(--color-surface-muted);color:var(--color-disabled);cursor:not-allowed}.ui-button__spinner{flex:none;animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(1turn)}}.ui-field{gap:var(--space-2);display:grid}.ui-field__label{color:var(--color-ink);font-weight:600}.ui-field__required{color:var(--color-danger);margin-inline-start:var(--space-1)}.ui-field__description,.ui-field__error{font-size:var(--font-size-small);line-height:var(--line-height-small);margin:0}.ui-field__error{color:var(--color-danger)}.ui-field__control{width:100%;min-height:2.75rem;padding:.625rem var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-input);color:var(--color-ink);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.ui-field__control:hover:not(:disabled){border-color:var(--color-muted)}.ui-field__control[aria-invalid=true]{border-color:var(--color-danger)}.ui-field__control:disabled{background:var(--color-surface-muted);color:var(--color-disabled);cursor:not-allowed}.ui-status{align-items:center;gap:var(--space-1);min-height:1.75rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-caption);font-weight:600;line-height:var(--line-height-caption);display:inline-flex}.ui-status--neutral{background:var(--color-surface-muted);color:var(--color-muted)}.ui-status--info{background:var(--color-brand-soft);color:var(--color-brand-dark)}.ui-status--success{background:var(--color-success-soft);color:var(--color-success)}.ui-status--warning{background:var(--color-warning-soft);color:var(--color-warning)}.ui-status--danger{background:var(--color-danger-soft);color:var(--color-danger)}.ui-skeleton-group,.ui-skeleton{width:var(--skeleton-width,100%);display:block}.ui-skeleton{height:var(--skeleton-height,1rem);border-radius:var(--radius-control);background:var(--color-surface-muted);animation:1.4s ease-in-out infinite ui-skeleton-pulse}.ui-skeleton--line{border-radius:var(--radius-pill)}.ui-skeleton--circle{aspect-ratio:1;border-radius:50%}@keyframes ui-skeleton-pulse{50%{background:var(--color-hover)}}.ui-state{width:min(100%,30rem);padding:var(--space-8) var(--space-6);border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-surface);text-align:center}.ui-state__icon{margin:0 auto var(--space-3);color:var(--color-muted)}.ui-state h2{margin-block-end:var(--space-2)}.ui-state p{margin:0 auto}.ui-state__action{margin-block-start:var(--space-6)}.ui-state--error{border-color:var(--color-danger);background:var(--color-danger-soft)}.ui-state--error .ui-state__icon,.ui-state--error h2{color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.ui-button__spinner,.ui-skeleton{animation:none}}@media (forced-colors:active){.ui-button,.ui-field__control,.ui-state,.ui-status{border:1px solid canvastext}}
