.ui-button{min-width:var(--target);min-height:var(--target);max-width:100%;padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-control);font-family:inherit;font-size:var(--type-control);line-height:var(--leading-control);font-weight:var(--weight-control);letter-spacing:var(--tracking-corpo);text-align:center;cursor:pointer;user-select:none;transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.ui-button,.ui-button__label{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.ui-button__label{min-width:0;overflow-wrap:anywhere}.ui-button--sm{padding-inline:var(--space-3)}.ui-button--lg{min-height:var(--field-height);padding-inline:var(--space-5);font-size:var(--type-corpo-forte);line-height:var(--leading-corpo-forte)}.ui-button--primary{background:var(--ui-primary-bg,var(--accent));color:var(--ui-primary-ink,var(--accent-ink))}.ui-button--secondary{border-color:var(--control-line);background:var(--surface);color:var(--ink)}.ui-button--ghost{background:transparent;color:var(--ui-context-muted,var(--ink-muted))}.ui-button--danger{border-color:var(--danger-ink);background:var(--surface);color:var(--danger-ink)}@media (hover:hover) and (pointer:fine){.ui-button--primary:not(:disabled):hover{background:var(--ui-primary-hover,var(--ink-muted))}.ui-button--danger:not(:disabled):hover,.ui-button--secondary:not(:disabled):hover{background:var(--surface-hover)}.ui-button--ghost:not(:disabled):hover{border-color:var(--ui-context-ghost-line,transparent);background:var(--ui-context-hover,var(--surface-hover));color:var(--ui-context-ink,var(--ink))}}.ui-button:not(:disabled):active{transform:scale(.98)}.ui-button:focus-visible{outline:2px solid var(--ui-focus-outer,var(--ink));outline-offset:2px;box-shadow:0 0 0 2px var(--ui-focus-inner,var(--surface))}.ui-button:disabled{border-color:var(--line);background:var(--disabled-bg);color:var(--disabled);cursor:not-allowed;transform:none}.ui-button[data-loading]{color:var(--ink-muted);cursor:progress}.ui-button__spinner{width:var(--space-4);height:var(--space-4);flex:0 0 auto;animation:ui-button-spin calc(var(--motion-surface) * 5) linear infinite}@keyframes ui-button-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ui-button{transition:none}.ui-button:not(:disabled):active{transform:none}.ui-button__spinner{animation:none}}